] the service class defined by this function.
*/
defineService: function defineService(serviceIdentifier, versions, features) {
AWS.Service._serviceMap[serviceIdentifier] = true;
if (!Array.isArray(versions)) {
features = versions;
versions = [];
}
var svc = inherit(AWS.Service, features || {});
if (typeof serviceIdentifier === 'string') {
AWS.Service.addVersions(svc, versions);
var identifier = svc.serviceIdentifier || serviceIdentifier;
svc.serviceIdentifier = identifier;
} else { // defineService called with an API
svc.prototype.api = serviceIdentifier;
AWS.Service.defineMethods(svc);
}
AWS.SequentialExecutor.call(this.prototype);
//util.clientSideMonitoring is only available in node
if (!this.prototype.publisher && AWS.util.clientSideMonitoring) {
var Publisher = AWS.util.clientSideMonitoring.Publisher;
var configProvider = AWS.util.clientSideMonitoring.configProvider;
var publisherConfig = configProvider();
this.prototype.publisher = new Publisher(publisherConfig);
if (publisherConfig.enabled) {
//if csm is enabled in environment, SDK should send all metrics
AWS.Service._clientSideMonitoring = true;
}
}
AWS.SequentialExecutor.call(svc.prototype);
AWS.Service.addDefaultMonitoringListeners(svc.prototype);
return svc;
},
/**
* @api private
*/
addVersions: function addVersions(svc, versions) {
if (!Array.isArray(versions)) versions = [versions];
svc.services = svc.services || {};
for (var i = 0; i < versions.length; i++) {
if (svc.services[versions[i]] === undefined) {
svc.services[versions[i]] = null;
}
}
svc.apiVersions = Object.keys(svc.services).sort();
},
/**
* @api private
*/
defineServiceApi: function defineServiceApi(superclass, version, apiConfig) {
var svc = inherit(superclass, {
serviceIdentifier: superclass.serviceIdentifier
});
function setApi(api) {
if (api.isApi) {
svc.prototype.api = api;
} else {
svc.prototype.api = new Api(api, {
serviceIdentifier: superclass.serviceIdentifier
});
}
}
if (typeof version === 'string') {
if (apiConfig) {
setApi(apiConfig);
} else {
try {
setApi(AWS.apiLoader(superclass.serviceIdentifier, version));
} catch (err) {
throw AWS.util.error(err, {
message: 'Could not find API configuration ' +
superclass.serviceIdentifier + '-' + version
});
}
}
if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) {
superclass.apiVersions = superclass.apiVersions.concat(version).sort();
}
superclass.services[version] = svc;
} else {
setApi(version);
}
AWS.Service.defineMethods(svc);
return svc;
},
/**
* @api private
*/
hasService: function(identifier) {
return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier);
},
/**
* @param attachOn attach default monitoring listeners to object
*
* Each monitoring event should be emitted from service client to service constructor prototype and then
* to global service prototype like bubbling up. These default monitoring events listener will transfer
* the monitoring events to the upper layer.
* @api private
*/
addDefaultMonitoringListeners: function addDefaultMonitoringListeners(attachOn) {
attachOn.addNamedListener('MONITOR_EVENTS_BUBBLE', 'apiCallAttempt', function EVENTS_BUBBLE(event) {
var baseClass = Object.getPrototypeOf(attachOn);
if (baseClass._events) baseClass.emit('apiCallAttempt', [event]);
});
attachOn.addNamedListener('CALL_EVENTS_BUBBLE', 'apiCall', function CALL_EVENTS_BUBBLE(event) {
var baseClass = Object.getPrototypeOf(attachOn);
if (baseClass._events) baseClass.emit('apiCall', [event]);
});
},
/**
* @api private
*/
_serviceMap: {}
});
AWS.util.mixin(AWS.Service, AWS.SequentialExecutor);
/**
* @api private
*/
module.exports = AWS.Service;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(26)))
/***/ }),
/* 1391 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
AWS.util.update(AWS.APIGateway.prototype, {
/**
* Sets the Accept header to application/json.
*
* @api private
*/
setAcceptHeader: function setAcceptHeader(req) {
var httpRequest = req.httpRequest;
if (!httpRequest.headers.Accept) {
httpRequest.headers['Accept'] = 'application/json';
}
},
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(request) {
request.addListener('build', this.setAcceptHeader);
if (request.operation === 'getExport') {
var params = request.params || {};
if (params.exportType === 'swagger') {
request.addListener('extractData', AWS.util.convertPayloadToString);
}
}
}
});
/***/ }),
/* 1392 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
// pull in CloudFront signer
__webpack_require__(1358);
AWS.util.update(AWS.CloudFront.prototype, {
setupRequestListeners: function setupRequestListeners(request) {
request.addListener('extractData', AWS.util.hoistPayloadMember);
}
});
/***/ }),
/* 1393 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
__webpack_require__(1367);
AWS.util.update(AWS.DynamoDB.prototype, {
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(request) {
if (request.service.config.dynamoDbCrc32) {
request.removeListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);
request.addListener('extractData', this.checkCrc32);
request.addListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);
}
},
/**
* @api private
*/
checkCrc32: function checkCrc32(resp) {
if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) {
resp.data = null;
resp.error = AWS.util.error(new Error(), {
code: 'CRC32CheckFailed',
message: 'CRC32 integrity check failed',
retryable: true
});
resp.request.haltHandlersOnError();
throw (resp.error);
}
},
/**
* @api private
*/
crc32IsValid: function crc32IsValid(resp) {
var crc = resp.httpResponse.headers['x-amz-crc32'];
if (!crc) return true; // no (valid) CRC32 header
return parseInt(crc, 10) === AWS.util.crypto.crc32(resp.httpResponse.body);
},
/**
* @api private
*/
defaultRetryCount: 10,
/**
* @api private
*/
retryDelays: function retryDelays(retryCount, err) {
var retryDelayOptions = AWS.util.copy(this.config.retryDelayOptions);
if (typeof retryDelayOptions.base !== 'number') {
retryDelayOptions.base = 50; // default for dynamodb
}
var delay = AWS.util.calculateRetryDelay(retryCount, retryDelayOptions, err);
return delay;
}
});
/***/ }),
/* 1394 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
AWS.util.update(AWS.EC2.prototype, {
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(request) {
request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR);
request.addListener('extractError', this.extractError);
if (request.operation === 'copySnapshot') {
request.onAsync('validate', this.buildCopySnapshotPresignedUrl);
}
},
/**
* @api private
*/
buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) {
if (req.params.PresignedUrl || req._subRequest) {
return done();
}
req.params = AWS.util.copy(req.params);
req.params.DestinationRegion = req.service.config.region;
var config = AWS.util.copy(req.service.config);
delete config.endpoint;
config.region = req.params.SourceRegion;
var svc = new req.service.constructor(config);
var newReq = svc[req.operation](req.params);
newReq._subRequest = true;
newReq.presign(function(err, url) {
if (err) done(err);
else {
req.params.PresignedUrl = url;
done();
}
});
},
/**
* @api private
*/
extractError: function extractError(resp) {
// EC2 nests the error code and message deeper than other AWS Query services.
var httpResponse = resp.httpResponse;
var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || '');
if (data.Errors) {
resp.error = AWS.util.error(new Error(), {
code: data.Errors.Error.Code,
message: data.Errors.Error.Message
});
} else {
resp.error = AWS.util.error(new Error(), {
code: httpResponse.statusCode,
message: null
});
}
resp.error.requestId = data.RequestID || null;
}
});
/***/ }),
/* 1395 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
/**
* @api private
*/
var blobPayloadOutputOps = [
'deleteThingShadow',
'getThingShadow',
'updateThingShadow'
];
/**
* Constructs a service interface object. Each API operation is exposed as a
* function on service.
*
* ### Sending a Request Using IotData
*
* ```javascript
* var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});
* iotdata.getThingShadow(params, function (err, data) {
* if (err) console.log(err, err.stack); // an error occurred
* else console.log(data); // successful response
* });
* ```
*
* ### Locking the API Version
*
* In order to ensure that the IotData object uses this specific API,
* you can construct the object by passing the `apiVersion` option to the
* constructor:
*
* ```javascript
* var iotdata = new AWS.IotData({
* endpoint: 'my.host.tld',
* apiVersion: '2015-05-28'
* });
* ```
*
* You can also set the API version globally in `AWS.config.apiVersions` using
* the **iotdata** service identifier:
*
* ```javascript
* AWS.config.apiVersions = {
* iotdata: '2015-05-28',
* // other service API versions
* };
*
* var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});
* ```
*
* @note You *must* provide an `endpoint` configuration parameter when
* constructing this service. See {constructor} for more information.
*
* @!method constructor(options = {})
* Constructs a service object. This object has one method for each
* API operation.
*
* @example Constructing a IotData object
* var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});
* @note You *must* provide an `endpoint` when constructing this service.
* @option (see AWS.Config.constructor)
*
* @service iotdata
* @version 2015-05-28
*/
AWS.util.update(AWS.IotData.prototype, {
/**
* @api private
*/
validateService: function validateService() {
if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) {
var msg = 'AWS.IotData requires an explicit ' +
'`endpoint\' configuration option.';
throw AWS.util.error(new Error(),
{name: 'InvalidEndpoint', message: msg});
}
},
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(request) {
request.addListener('validateResponse', this.validateResponseBody);
if (blobPayloadOutputOps.indexOf(request.operation) > -1) {
request.addListener('extractData', AWS.util.convertPayloadToString);
}
},
/**
* @api private
*/
validateResponseBody: function validateResponseBody(resp) {
var body = resp.httpResponse.body.toString() || '{}';
var bodyCheck = body.trim();
if (!bodyCheck || bodyCheck.charAt(0) !== '{') {
resp.httpResponse.body = '';
}
}
});
/***/ }),
/* 1396 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
AWS.util.update(AWS.Lambda.prototype, {
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(request) {
if (request.operation === 'invoke') {
request.addListener('extractData', AWS.util.convertPayloadToString);
}
}
});
/***/ }),
/* 1397 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
AWS.util.update(AWS.MachineLearning.prototype, {
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(request) {
if (request.operation === 'predict') {
request.addListener('build', this.buildEndpoint);
}
},
/**
* Updates request endpoint from PredictEndpoint
* @api private
*/
buildEndpoint: function buildEndpoint(request) {
var url = request.params.PredictEndpoint;
if (url) {
request.httpRequest.endpoint = new AWS.Endpoint(url);
}
}
});
/***/ }),
/* 1398 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(1380);
/***/ }),
/* 1399 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
var rdsutil = __webpack_require__(1400);
__webpack_require__(1382);
/**
* @api private
*/
var crossRegionOperations = ['copyDBSnapshot', 'createDBInstanceReadReplica', 'createDBCluster', 'copyDBClusterSnapshot', 'startDBInstanceAutomatedBackupsReplication'];
AWS.util.update(AWS.RDS.prototype, {
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(request) {
rdsutil.setupRequestListeners(this, request, crossRegionOperations);
},
});
/***/ }),
/* 1400 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
var rdsutil = {
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(service, request, crossRegionOperations) {
if (crossRegionOperations.indexOf(request.operation) !== -1 &&
request.params.SourceRegion) {
request.params = AWS.util.copy(request.params);
if (request.params.PreSignedUrl ||
request.params.SourceRegion === service.config.region) {
delete request.params.SourceRegion;
} else {
var doesParamValidation = !!service.config.paramValidation;
// remove the validate parameters listener so we can re-add it after we build the URL
if (doesParamValidation) {
request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);
}
request.onAsync('validate', rdsutil.buildCrossRegionPresignedUrl);
if (doesParamValidation) {
request.addListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);
}
}
}
},
/**
* @api private
*/
buildCrossRegionPresignedUrl: function buildCrossRegionPresignedUrl(req, done) {
var config = AWS.util.copy(req.service.config);
config.region = req.params.SourceRegion;
delete req.params.SourceRegion;
delete config.endpoint;
// relevant params for the operation will already be in req.params
delete config.params;
config.signatureVersion = 'v4';
var destinationRegion = req.service.config.region;
var svc = new req.service.constructor(config);
var newReq = svc[req.operation](AWS.util.copy(req.params));
newReq.on('build', function addDestinationRegionParam(request) {
var httpRequest = request.httpRequest;
httpRequest.params.DestinationRegion = destinationRegion;
httpRequest.body = AWS.util.queryParamsToString(httpRequest.params);
});
newReq.presign(function(err, url) {
if (err) done(err);
else {
req.params.PreSignedUrl = url;
done();
}
});
}
};
/**
* @api private
*/
module.exports = rdsutil;
/***/ }),
/* 1401 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
AWS.util.update(AWS.Route53.prototype, {
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(request) {
request.on('build', this.sanitizeUrl);
},
/**
* @api private
*/
sanitizeUrl: function sanitizeUrl(request) {
var path = request.httpRequest.path;
request.httpRequest.path = path.replace(/\/%2F\w+%2F/, '/');
},
/**
* @return [Boolean] whether the error can be retried
* @api private
*/
retryableError: function retryableError(error) {
if (error.code === 'PriorRequestNotComplete' &&
error.statusCode === 400) {
return true;
} else {
var _super = AWS.Service.prototype.retryableError;
return _super.call(this, error);
}
}
});
/***/ }),
/* 1402 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
var v4Credentials = __webpack_require__(437);
var resolveRegionalEndpointsFlag = __webpack_require__(421);
var s3util = __webpack_require__(1403);
var regionUtil = __webpack_require__(281);
// Pull in managed upload extension
__webpack_require__(1389);
/**
* @api private
*/
var operationsWith200StatusCodeError = {
'completeMultipartUpload': true,
'copyObject': true,
'uploadPartCopy': true
};
/**
* @api private
*/
var regionRedirectErrorCodes = [
'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints
'BadRequest', // head operations on virtual-hosted global bucket endpoints
'PermanentRedirect', // non-head operations on path-style or regional endpoints
301 // head operations on path-style or regional endpoints
];
var OBJECT_LAMBDA_SERVICE = 's3-object-lambda';
AWS.util.update(AWS.S3.prototype, {
/**
* @api private
*/
getSignatureVersion: function getSignatureVersion(request) {
var defaultApiVersion = this.api.signatureVersion;
var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null;
var regionDefinedVersion = this.config.signatureVersion;
var isPresigned = request ? request.isPresigned() : false;
/*
1) User defined version specified:
a) always return user defined version
2) No user defined version specified:
a) If not using presigned urls, default to V4
b) If using presigned urls, default to lowest version the region supports
*/
if (userDefinedVersion) {
userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion;
return userDefinedVersion;
}
if (isPresigned !== true) {
defaultApiVersion = 'v4';
} else if (regionDefinedVersion) {
defaultApiVersion = regionDefinedVersion;
}
return defaultApiVersion;
},
/**
* @api private
*/
getSigningName: function getSigningName(req) {
if (req && req.operation === 'writeGetObjectResponse') {
return OBJECT_LAMBDA_SERVICE;
}
var _super = AWS.Service.prototype.getSigningName;
return (req && req._parsedArn && req._parsedArn.service)
? req._parsedArn.service
: _super.call(this);
},
/**
* @api private
*/
getSignerClass: function getSignerClass(request) {
var signatureVersion = this.getSignatureVersion(request);
return AWS.Signers.RequestSigner.getVersion(signatureVersion);
},
/**
* @api private
*/
validateService: function validateService() {
var msg;
var messages = [];
// default to us-east-1 when no region is provided
if (!this.config.region) this.config.region = 'us-east-1';
if (!this.config.endpoint && this.config.s3BucketEndpoint) {
messages.push('An endpoint must be provided when configuring ' +
'`s3BucketEndpoint` to true.');
}
if (messages.length === 1) {
msg = messages[0];
} else if (messages.length > 1) {
msg = 'Multiple configuration errors:\n' + messages.join('\n');
}
if (msg) {
throw AWS.util.error(new Error(),
{name: 'InvalidEndpoint', message: msg});
}
},
/**
* @api private
*/
shouldDisableBodySigning: function shouldDisableBodySigning(request) {
var signerClass = this.getSignerClass();
if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4
&& request.httpRequest.endpoint.protocol === 'https:') {
return true;
}
return false;
},
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(request) {
request.addListener('validateResponse', this.setExpiresString);
var prependListener = true;
request.addListener('validate', this.validateScheme);
request.addListener('validate', this.validateBucketName, prependListener);
request.addListener('validate', this.optInUsEast1RegionalEndpoint, prependListener);
request.removeListener('validate',
AWS.EventListeners.Core.VALIDATE_REGION);
request.addListener('build', this.addContentType);
request.addListener('build', this.computeContentMd5);
request.addListener('build', this.computeSseCustomerKeyMd5);
request.addListener('build', this.populateURI);
request.addListener('afterBuild', this.addExpect100Continue);
request.addListener('extractError', this.extractError);
request.addListener('extractData', AWS.util.hoistPayloadMember);
request.addListener('extractData', this.extractData);
request.addListener('extractData', this.extractErrorFrom200Response);
request.addListener('beforePresign', this.prepareSignedUrl);
if (this.shouldDisableBodySigning(request)) {
request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);
request.addListener('afterBuild', this.disableBodySigning);
}
//deal with ARNs supplied to Bucket
if (request.operation !== 'createBucket' && s3util.isArnInParam(request, 'Bucket')) {
// avoid duplicate parsing in the future
request._parsedArn = AWS.util.ARN.parse(request.params.Bucket);
request.removeListener('validate', this.validateBucketName);
request.removeListener('build', this.populateURI);
if (request._parsedArn.service === 's3') {
request.addListener('validate', s3util.validateS3AccessPointArn);
request.addListener('validate', this.validateArnResourceType);
request.addListener('validate', this.validateArnRegion);
} else if (request._parsedArn.service === 's3-outposts') {
request.addListener('validate', s3util.validateOutpostsAccessPointArn);
request.addListener('validate', s3util.validateOutpostsArn);
request.addListener('validate', s3util.validateArnRegion);
}
request.addListener('validate', s3util.validateArnAccount);
request.addListener('validate', s3util.validateArnService);
request.addListener('build', this.populateUriFromAccessPointArn);
request.addListener('build', s3util.validatePopulateUriFromArn);
return;
}
//listeners regarding region inference
request.addListener('validate', this.validateBucketEndpoint);
request.addListener('validate', this.correctBucketRegionFromCache);
request.onAsync('extractError', this.requestBucketRegion);
if (AWS.util.isBrowser()) {
request.onAsync('retry', this.reqRegionForNetworkingError);
}
},
/**
* @api private
*/
validateScheme: function(req) {
var params = req.params,
scheme = req.httpRequest.endpoint.protocol,
sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey;
if (sensitive && scheme !== 'https:') {
var msg = 'Cannot send SSE keys over HTTP. Set \'sslEnabled\'' +
'to \'true\' in your configuration';
throw AWS.util.error(new Error(),
{ code: 'ConfigError', message: msg });
}
},
/**
* @api private
*/
validateBucketEndpoint: function(req) {
if (!req.params.Bucket && req.service.config.s3BucketEndpoint) {
var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.';
throw AWS.util.error(new Error(),
{ code: 'ConfigError', message: msg });
}
},
/**
* @api private
*/
validateArnRegion: function validateArnRegion(req) {
s3util.validateArnRegion(req, { allowFipsEndpoint: true });
},
/**
* Validate resource-type supplied in S3 ARN
*/
validateArnResourceType: function validateArnResourceType(req) {
var resource = req._parsedArn.resource;
if (
resource.indexOf('accesspoint:') !== 0 &&
resource.indexOf('accesspoint/') !== 0
) {
throw AWS.util.error(new Error(), {
code: 'InvalidARN',
message: 'ARN resource should begin with \'accesspoint/\''
});
}
},
/**
* @api private
*/
validateBucketName: function validateBucketName(req) {
var service = req.service;
var signatureVersion = service.getSignatureVersion(req);
var bucket = req.params && req.params.Bucket;
var key = req.params && req.params.Key;
var slashIndex = bucket && bucket.indexOf('/');
if (bucket && slashIndex >= 0) {
if (typeof key === 'string' && slashIndex > 0) {
req.params = AWS.util.copy(req.params);
// Need to include trailing slash to match sigv2 behavior
var prefix = bucket.substr(slashIndex + 1) || '';
req.params.Key = prefix + '/' + key;
req.params.Bucket = bucket.substr(0, slashIndex);
} else if (signatureVersion === 'v4') {
var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket;
throw AWS.util.error(new Error(),
{ code: 'InvalidBucket', message: msg });
}
}
},
/**
* @api private
*/
isValidAccelerateOperation: function isValidAccelerateOperation(operation) {
var invalidOperations = [
'createBucket',
'deleteBucket',
'listBuckets'
];
return invalidOperations.indexOf(operation) === -1;
},
/**
* When us-east-1 region endpoint configuration is set, in stead of sending request to
* global endpoint(e.g. 's3.amazonaws.com'), we will send request to
* 's3.us-east-1.amazonaws.com'.
* @api private
*/
optInUsEast1RegionalEndpoint: function optInUsEast1RegionalEndpoint(req) {
var service = req.service;
var config = service.config;
config.s3UsEast1RegionalEndpoint = resolveRegionalEndpointsFlag(service._originalConfig, {
env: 'AWS_S3_US_EAST_1_REGIONAL_ENDPOINT',
sharedConfig: 's3_us_east_1_regional_endpoint',
clientConfig: 's3UsEast1RegionalEndpoint'
});
if (
!(service._originalConfig || {}).endpoint &&
req.httpRequest.region === 'us-east-1' &&
config.s3UsEast1RegionalEndpoint === 'regional' &&
req.httpRequest.endpoint.hostname.indexOf('s3.amazonaws.com') >= 0
) {
var insertPoint = config.endpoint.indexOf('.amazonaws.com');
var regionalEndpoint = config.endpoint.substring(0, insertPoint) +
'.us-east-1' + config.endpoint.substring(insertPoint);
req.httpRequest.updateEndpoint(regionalEndpoint);
}
},
/**
* S3 prefers dns-compatible bucket names to be moved from the uri path
* to the hostname as a sub-domain. This is not possible, even for dns-compat
* buckets when using SSL and the bucket name contains a dot ('.'). The
* ssl wildcard certificate is only 1-level deep.
*
* @api private
*/
populateURI: function populateURI(req) {
var httpRequest = req.httpRequest;
var b = req.params.Bucket;
var service = req.service;
var endpoint = httpRequest.endpoint;
if (b) {
if (!service.pathStyleBucketName(b)) {
if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) {
if (service.config.useDualstackEndpoint) {
endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com';
} else {
endpoint.hostname = b + '.s3-accelerate.amazonaws.com';
}
} else if (!service.config.s3BucketEndpoint) {
endpoint.hostname =
b + '.' + endpoint.hostname;
}
var port = endpoint.port;
if (port !== 80 && port !== 443) {
endpoint.host = endpoint.hostname + ':' +
endpoint.port;
} else {
endpoint.host = endpoint.hostname;
}
httpRequest.virtualHostedBucket = b; // needed for signing the request
service.removeVirtualHostedBucketFromPath(req);
}
}
},
/**
* Takes the bucket name out of the path if bucket is virtual-hosted
*
* @api private
*/
removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) {
var httpRequest = req.httpRequest;
var bucket = httpRequest.virtualHostedBucket;
if (bucket && httpRequest.path) {
if (req.params && req.params.Key) {
var encodedS3Key = '/' + AWS.util.uriEscapePath(req.params.Key);
if (httpRequest.path.indexOf(encodedS3Key) === 0 && (httpRequest.path.length === encodedS3Key.length || httpRequest.path[encodedS3Key.length] === '?')) {
//path only contains key or path contains only key and querystring
return;
}
}
httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), '');
if (httpRequest.path[0] !== '/') {
httpRequest.path = '/' + httpRequest.path;
}
}
},
/**
* When user supply an access point ARN in the Bucket parameter, we need to
* populate the URI according to the ARN.
*/
populateUriFromAccessPointArn: function populateUriFromAccessPointArn(req) {
var accessPointArn = req._parsedArn;
var isOutpostArn = accessPointArn.service === 's3-outposts';
var isObjectLambdaArn = accessPointArn.service === 's3-object-lambda';
var outpostsSuffix = isOutpostArn ? '.' + accessPointArn.outpostId: '';
var serviceName = isOutpostArn ? 's3-outposts': 's3-accesspoint';
var fipsSuffix = !isOutpostArn && req.service.config.useFipsEndpoint ? '-fips': '';
var dualStackSuffix = !isOutpostArn &&
req.service.config.useDualstackEndpoint ? '.dualstack' : '';
var endpoint = req.httpRequest.endpoint;
var dnsSuffix = regionUtil.getEndpointSuffix(accessPointArn.region);
var useArnRegion = req.service.config.s3UseArnRegion;
endpoint.hostname = [
accessPointArn.accessPoint + '-' + accessPointArn.accountId + outpostsSuffix,
serviceName + fipsSuffix + dualStackSuffix,
useArnRegion ? accessPointArn.region : req.service.config.region,
dnsSuffix
].join('.');
if (isObjectLambdaArn) {
// should be in the format: "accesspoint/${accesspointName}"
var serviceName = 's3-object-lambda';
var accesspointName = accessPointArn.resource.split('/')[1];
var fipsSuffix = req.service.config.useFipsEndpoint ? '-fips': '';
endpoint.hostname = [
accesspointName + '-' + accessPointArn.accountId,
serviceName + fipsSuffix,
useArnRegion ? accessPointArn.region : req.service.config.region,
dnsSuffix
].join('.');
}
endpoint.host = endpoint.hostname;
var encodedArn = AWS.util.uriEscape(req.params.Bucket);
var path = req.httpRequest.path;
//remove the Bucket value from path
req.httpRequest.path = path.replace(new RegExp('/' + encodedArn), '');
if (req.httpRequest.path[0] !== '/') {
req.httpRequest.path = '/' + req.httpRequest.path;
}
req.httpRequest.region = accessPointArn.region; //region used to sign
},
/**
* Adds Expect: 100-continue header if payload is greater-or-equal 1MB
* @api private
*/
addExpect100Continue: function addExpect100Continue(req) {
var len = req.httpRequest.headers['Content-Length'];
if (AWS.util.isNode() && (len >= 1024 * 1024 || req.params.Body instanceof AWS.util.stream.Stream)) {
req.httpRequest.headers['Expect'] = '100-continue';
}
},
/**
* Adds a default content type if none is supplied.
*
* @api private
*/
addContentType: function addContentType(req) {
var httpRequest = req.httpRequest;
if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') {
// Content-Type is not set in GET/HEAD requests
delete httpRequest.headers['Content-Type'];
return;
}
if (!httpRequest.headers['Content-Type']) { // always have a Content-Type
httpRequest.headers['Content-Type'] = 'application/octet-stream';
}
var contentType = httpRequest.headers['Content-Type'];
if (AWS.util.isBrowser()) {
if (typeof httpRequest.body === 'string' && !contentType.match(/;\s*charset=/)) {
var charset = '; charset=UTF-8';
httpRequest.headers['Content-Type'] += charset;
} else {
var replaceFn = function(_, prefix, charsetName) {
return prefix + charsetName.toUpperCase();
};
httpRequest.headers['Content-Type'] =
contentType.replace(/(;\s*charset=)(.+)$/, replaceFn);
}
}
},
/**
* Checks whether checksums should be computed for the request if it's not
* already set by {AWS.EventListeners.Core.COMPUTE_CHECKSUM}. It depends on
* whether {AWS.Config.computeChecksums} is set.
*
* @param req [AWS.Request] the request to check against
* @return [Boolean] whether to compute checksums for a request.
* @api private
*/
willComputeChecksums: function willComputeChecksums(req) {
var rules = req.service.api.operations[req.operation].input.members;
var body = req.httpRequest.body;
var needsContentMD5 = req.service.config.computeChecksums &&
rules.ContentMD5 &&
!req.params.ContentMD5 &&
body &&
(AWS.util.Buffer.isBuffer(req.httpRequest.body) || typeof req.httpRequest.body === 'string');
// Sha256 signing disabled, and not a presigned url
if (needsContentMD5 && req.service.shouldDisableBodySigning(req) && !req.isPresigned()) {
return true;
}
// SigV2 and presign, for backwards compatibility purpose.
if (needsContentMD5 && this.getSignatureVersion(req) === 's3' && req.isPresigned()) {
return true;
}
return false;
},
/**
* A listener that computes the Content-MD5 and sets it in the header.
* This listener is to support S3-specific features like
* s3DisableBodySigning and SigV2 presign. Content MD5 logic for SigV4 is
* handled in AWS.EventListeners.Core.COMPUTE_CHECKSUM
*
* @api private
*/
computeContentMd5: function computeContentMd5(req) {
if (req.service.willComputeChecksums(req)) {
var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64');
req.httpRequest.headers['Content-MD5'] = md5;
}
},
/**
* @api private
*/
computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) {
var keys = {
SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5',
CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5'
};
AWS.util.each(keys, function(key, header) {
if (req.params[key]) {
var value = AWS.util.crypto.md5(req.params[key], 'base64');
req.httpRequest.headers[header] = value;
}
});
},
/**
* Returns true if the bucket name should be left in the URI path for
* a request to S3. This function takes into account the current
* endpoint protocol (e.g. http or https).
*
* @api private
*/
pathStyleBucketName: function pathStyleBucketName(bucketName) {
// user can force path style requests via the configuration
if (this.config.s3ForcePathStyle) return true;
if (this.config.s3BucketEndpoint) return false;
if (s3util.dnsCompatibleBucketName(bucketName)) {
return (this.config.sslEnabled && bucketName.match(/\./)) ? true : false;
} else {
return true; // not dns compatible names must always use path style
}
},
/**
* For COPY operations, some can be error even with status code 200.
* SDK treats the response as exception when response body indicates
* an exception or body is empty.
*
* @api private
*/
extractErrorFrom200Response: function extractErrorFrom200Response(resp) {
var service = this.service ? this.service : this;
if (!service.is200Error(resp) && !operationsWith200StatusCodeError[resp.request.operation]) {
return;
}
var httpResponse = resp.httpResponse;
var bodyString = httpResponse.body && httpResponse.body.toString() || '';
if (bodyString && bodyString.indexOf('') === bodyString.length - 8) {
// Response body with '...' indicates an exception.
// Get S3 client object. In ManagedUpload, this.service refers to
// S3 client object.
resp.data = null;
service.extractError(resp);
resp.error.is200Error = true;
throw resp.error;
} else if (!httpResponse.body || !bodyString.match(/<[\w_]/)) {
// When body is empty or incomplete, S3 might stop the request on detecting client
// side aborting the request.
resp.data = null;
throw AWS.util.error(new Error(), {
code: 'InternalError',
message: 'S3 aborted request'
});
}
},
/**
* @api private
* @param resp - to evaluate.
* @return true if the response has status code 200 but is an error.
*/
is200Error: function is200Error(resp) {
var code = resp && resp.httpResponse && resp.httpResponse.statusCode;
if (code !== 200) {
return false;
}
try {
var req = resp.request;
var outputMembers = req.service.api.operations[req.operation].output.members;
var keys = Object.keys(outputMembers);
for (var i = 0; i < keys.length; ++i) {
var member = outputMembers[keys[i]];
if (member.type === 'binary' && member.isStreaming) {
return false;
}
}
var body = resp.httpResponse.body;
if (body && body.byteLength !== undefined) {
if (body.byteLength < 15 || body.byteLength > 3000) {
// body is too short or long to be an error message.
return false;
}
}
if (!body) {
return false;
}
var bodyString = body.toString();
if (bodyString.indexOf('') === bodyString.length - 8) {
return true;
}
} catch (e) {
return false;
}
return false;
},
/**
* @return [Boolean] whether the error can be retried
* @api private
*/
retryableError: function retryableError(error, request) {
if (error.is200Error ||
(operationsWith200StatusCodeError[request.operation] && error.statusCode === 200)) {
return true;
} else if (request._requestRegionForBucket &&
request.service.bucketRegionCache[request._requestRegionForBucket]) {
return false;
} else if (error && error.code === 'RequestTimeout') {
return true;
} else if (error &&
regionRedirectErrorCodes.indexOf(error.code) != -1 &&
error.region && error.region != request.httpRequest.region) {
request.httpRequest.region = error.region;
if (error.statusCode === 301) {
request.service.updateReqBucketRegion(request);
}
return true;
} else {
var _super = AWS.Service.prototype.retryableError;
return _super.call(this, error, request);
}
},
/**
* Updates httpRequest with region. If region is not provided, then
* the httpRequest will be updated based on httpRequest.region
*
* @api private
*/
updateReqBucketRegion: function updateReqBucketRegion(request, region) {
var httpRequest = request.httpRequest;
if (typeof region === 'string' && region.length) {
httpRequest.region = region;
}
if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\.amazonaws\.com$/)) {
return;
}
var service = request.service;
var s3Config = service.config;
var s3BucketEndpoint = s3Config.s3BucketEndpoint;
if (s3BucketEndpoint) {
delete s3Config.s3BucketEndpoint;
}
var newConfig = AWS.util.copy(s3Config);
delete newConfig.endpoint;
newConfig.region = httpRequest.region;
httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint;
service.populateURI(request);
s3Config.s3BucketEndpoint = s3BucketEndpoint;
httpRequest.headers.Host = httpRequest.endpoint.host;
if (request._asm.currentState === 'validate') {
request.removeListener('build', service.populateURI);
request.addListener('build', service.removeVirtualHostedBucketFromPath);
}
},
/**
* Provides a specialized parser for getBucketLocation -- all other
* operations are parsed by the super class.
*
* @api private
*/
extractData: function extractData(resp) {
var req = resp.request;
if (req.operation === 'getBucketLocation') {
var match = resp.httpResponse.body.toString().match(/>(.+)<\/Location/);
delete resp.data['_'];
if (match) {
resp.data.LocationConstraint = match[1];
} else {
resp.data.LocationConstraint = '';
}
}
var bucket = req.params.Bucket || null;
if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) {
req.service.clearBucketRegionCache(bucket);
} else {
var headers = resp.httpResponse.headers || {};
var region = headers['x-amz-bucket-region'] || null;
if (!region && req.operation === 'createBucket' && !resp.error) {
var createBucketConfiguration = req.params.CreateBucketConfiguration;
if (!createBucketConfiguration) {
region = 'us-east-1';
} else if (createBucketConfiguration.LocationConstraint === 'EU') {
region = 'eu-west-1';
} else {
region = createBucketConfiguration.LocationConstraint;
}
}
if (region) {
if (bucket && region !== req.service.bucketRegionCache[bucket]) {
req.service.bucketRegionCache[bucket] = region;
}
}
}
req.service.extractRequestIds(resp);
},
/**
* Extracts an error object from the http response.
*
* @api private
*/
extractError: function extractError(resp) {
var codes = {
304: 'NotModified',
403: 'Forbidden',
400: 'BadRequest',
404: 'NotFound'
};
var req = resp.request;
var code = resp.httpResponse.statusCode;
var body = resp.httpResponse.body || '';
var headers = resp.httpResponse.headers || {};
var region = headers['x-amz-bucket-region'] || null;
var bucket = req.params.Bucket || null;
var bucketRegionCache = req.service.bucketRegionCache;
if (region && bucket && region !== bucketRegionCache[bucket]) {
bucketRegionCache[bucket] = region;
}
var cachedRegion;
if (codes[code] && body.length === 0) {
if (bucket && !region) {
cachedRegion = bucketRegionCache[bucket] || null;
if (cachedRegion !== req.httpRequest.region) {
region = cachedRegion;
}
}
resp.error = AWS.util.error(new Error(), {
code: codes[code],
message: null,
region: region
});
} else {
var data = new AWS.XML.Parser().parse(body.toString());
if (data.Region && !region) {
region = data.Region;
if (bucket && region !== bucketRegionCache[bucket]) {
bucketRegionCache[bucket] = region;
}
} else if (bucket && !region && !data.Region) {
cachedRegion = bucketRegionCache[bucket] || null;
if (cachedRegion !== req.httpRequest.region) {
region = cachedRegion;
}
}
resp.error = AWS.util.error(new Error(), {
code: data.Code || code,
message: data.Message || null,
region: region
});
}
req.service.extractRequestIds(resp);
},
/**
* If region was not obtained synchronously, then send async request
* to get bucket region for errors resulting from wrong region.
*
* @api private
*/
requestBucketRegion: function requestBucketRegion(resp, done) {
var error = resp.error;
var req = resp.request;
var bucket = req.params.Bucket || null;
if (!error || !bucket || error.region || req.operation === 'listObjects' ||
(AWS.util.isNode() && req.operation === 'headBucket') ||
(error.statusCode === 400 && req.operation !== 'headObject') ||
regionRedirectErrorCodes.indexOf(error.code) === -1) {
return done();
}
var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects';
var reqParams = {Bucket: bucket};
if (reqOperation === 'listObjects') reqParams.MaxKeys = 0;
var regionReq = req.service[reqOperation](reqParams);
regionReq._requestRegionForBucket = bucket;
regionReq.send(function() {
var region = req.service.bucketRegionCache[bucket] || null;
error.region = region;
done();
});
},
/**
* For browser only. If NetworkingError received, will attempt to obtain
* the bucket region.
*
* @api private
*/
reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) {
if (!AWS.util.isBrowser()) {
return done();
}
var error = resp.error;
var request = resp.request;
var bucket = request.params.Bucket;
if (!error || error.code !== 'NetworkingError' || !bucket ||
request.httpRequest.region === 'us-east-1') {
return done();
}
var service = request.service;
var bucketRegionCache = service.bucketRegionCache;
var cachedRegion = bucketRegionCache[bucket] || null;
if (cachedRegion && cachedRegion !== request.httpRequest.region) {
service.updateReqBucketRegion(request, cachedRegion);
done();
} else if (!s3util.dnsCompatibleBucketName(bucket)) {
service.updateReqBucketRegion(request, 'us-east-1');
if (bucketRegionCache[bucket] !== 'us-east-1') {
bucketRegionCache[bucket] = 'us-east-1';
}
done();
} else if (request.httpRequest.virtualHostedBucket) {
var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0});
service.updateReqBucketRegion(getRegionReq, 'us-east-1');
getRegionReq._requestRegionForBucket = bucket;
getRegionReq.send(function() {
var region = service.bucketRegionCache[bucket] || null;
if (region && region !== request.httpRequest.region) {
service.updateReqBucketRegion(request, region);
}
done();
});
} else {
// DNS-compatible path-style
// (s3ForcePathStyle or bucket name with dot over https)
// Cannot obtain region information for this case
done();
}
},
/**
* Cache for bucket region.
*
* @api private
*/
bucketRegionCache: {},
/**
* Clears bucket region cache.
*
* @api private
*/
clearBucketRegionCache: function(buckets) {
var bucketRegionCache = this.bucketRegionCache;
if (!buckets) {
buckets = Object.keys(bucketRegionCache);
} else if (typeof buckets === 'string') {
buckets = [buckets];
}
for (var i = 0; i < buckets.length; i++) {
delete bucketRegionCache[buckets[i]];
}
return bucketRegionCache;
},
/**
* Corrects request region if bucket's cached region is different
*
* @api private
*/
correctBucketRegionFromCache: function correctBucketRegionFromCache(req) {
var bucket = req.params.Bucket || null;
if (bucket) {
var service = req.service;
var requestRegion = req.httpRequest.region;
var cachedRegion = service.bucketRegionCache[bucket];
if (cachedRegion && cachedRegion !== requestRegion) {
service.updateReqBucketRegion(req, cachedRegion);
}
}
},
/**
* Extracts S3 specific request ids from the http response.
*
* @api private
*/
extractRequestIds: function extractRequestIds(resp) {
var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null;
var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null;
resp.extendedRequestId = extendedRequestId;
resp.cfId = cfId;
if (resp.error) {
resp.error.requestId = resp.requestId || null;
resp.error.extendedRequestId = extendedRequestId;
resp.error.cfId = cfId;
}
},
/**
* Get a pre-signed URL for a given operation name.
*
* @note You must ensure that you have static or previously resolved
* credentials if you call this method synchronously (with no callback),
* otherwise it may not properly sign the request. If you cannot guarantee
* this (you are using an asynchronous credential provider, i.e., EC2
* IAM roles), you should always call this method with an asynchronous
* callback.
* @note Not all operation parameters are supported when using pre-signed
* URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,
* `ContentLength`, or `Tagging` must be provided as headers when sending a
* request. If you are using pre-signed URLs to upload from a browser and
* need to use these fields, see {createPresignedPost}.
* @note The default signer allows altering the request by adding corresponding
* headers to set some parameters (e.g. Range) and these added parameters
* won't be signed. You must use signatureVersion v4 to to include these
* parameters in the signed portion of the URL and enforce exact matching
* between headers and signed params in the URL.
* @note This operation cannot be used with a promise. See note above regarding
* asynchronous credentials and use with a callback.
* @param operation [String] the name of the operation to call
* @param params [map] parameters to pass to the operation. See the given
* operation for the expected operation parameters. In addition, you can
* also pass the "Expires" parameter to inform S3 how long the URL should
* work for.
* @option params Expires [Integer] (900) the number of seconds to expire
* the pre-signed URL operation in. Defaults to 15 minutes.
* @param callback [Function] if a callback is provided, this function will
* pass the URL as the second parameter (after the error parameter) to
* the callback function.
* @return [String] if called synchronously (with no callback), returns the
* signed URL.
* @return [null] nothing is returned if a callback is provided.
* @example Pre-signing a getObject operation (synchronously)
* var params = {Bucket: 'bucket', Key: 'key'};
* var url = s3.getSignedUrl('getObject', params);
* console.log('The URL is', url);
* @example Pre-signing a putObject (asynchronously)
* var params = {Bucket: 'bucket', Key: 'key'};
* s3.getSignedUrl('putObject', params, function (err, url) {
* console.log('The URL is', url);
* });
* @example Pre-signing a putObject operation with a specific payload
* var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};
* var url = s3.getSignedUrl('putObject', params);
* console.log('The URL is', url);
* @example Passing in a 1-minute expiry time for a pre-signed URL
* var params = {Bucket: 'bucket', Key: 'key', Expires: 60};
* var url = s3.getSignedUrl('getObject', params);
* console.log('The URL is', url); // expires in 60 seconds
*/
getSignedUrl: function getSignedUrl(operation, params, callback) {
params = AWS.util.copy(params || {});
var expires = params.Expires || 900;
if (typeof expires !== 'number') {
throw AWS.util.error(new Error(),
{ code: 'InvalidParameterException', message: 'The expiration must be a number, received ' + typeof expires });
}
delete params.Expires; // we can't validate this
var request = this.makeRequest(operation, params);
if (callback) {
AWS.util.defer(function() {
request.presign(expires, callback);
});
} else {
return request.presign(expires, callback);
}
},
/**
* @!method getSignedUrlPromise()
* Returns a 'thenable' promise that will be resolved with a pre-signed URL
* for a given operation name.
*
* Two callbacks can be provided to the `then` method on the returned promise.
* The first callback will be called if the promise is fulfilled, and the second
* callback will be called if the promise is rejected.
* @note Not all operation parameters are supported when using pre-signed
* URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,
* `ContentLength`, or `Tagging` must be provided as headers when sending a
* request. If you are using pre-signed URLs to upload from a browser and
* need to use these fields, see {createPresignedPost}.
* @param operation [String] the name of the operation to call
* @param params [map] parameters to pass to the operation. See the given
* operation for the expected operation parameters. In addition, you can
* also pass the "Expires" parameter to inform S3 how long the URL should
* work for.
* @option params Expires [Integer] (900) the number of seconds to expire
* the pre-signed URL operation in. Defaults to 15 minutes.
* @callback fulfilledCallback function(url)
* Called if the promise is fulfilled.
* @param url [String] the signed url
* @callback rejectedCallback function(err)
* Called if the promise is rejected.
* @param err [Error] if an error occurred, this value will be filled
* @return [Promise] A promise that represents the state of the `refresh` call.
* @example Pre-signing a getObject operation
* var params = {Bucket: 'bucket', Key: 'key'};
* var promise = s3.getSignedUrlPromise('getObject', params);
* promise.then(function(url) {
* console.log('The URL is', url);
* }, function(err) { ... });
* @example Pre-signing a putObject operation with a specific payload
* var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};
* var promise = s3.getSignedUrlPromise('putObject', params);
* promise.then(function(url) {
* console.log('The URL is', url);
* }, function(err) { ... });
* @example Passing in a 1-minute expiry time for a pre-signed URL
* var params = {Bucket: 'bucket', Key: 'key', Expires: 60};
* var promise = s3.getSignedUrlPromise('getObject', params);
* promise.then(function(url) {
* console.log('The URL is', url);
* }, function(err) { ... });
*/
/**
* Get a pre-signed POST policy to support uploading to S3 directly from an
* HTML form.
*
* @param params [map]
* @option params Bucket [String] The bucket to which the post should be
* uploaded
* @option params Expires [Integer] (3600) The number of seconds for which
* the presigned policy should be valid.
* @option params Conditions [Array] An array of conditions that must be met
* for the presigned policy to allow the
* upload. This can include required tags,
* the accepted range for content lengths,
* etc.
* @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html
* @option params Fields [map] Fields to include in the form. All
* values passed in as fields will be
* signed as exact match conditions.
* @param callback [Function]
*
* @note All fields passed in when creating presigned post data will be signed
* as exact match conditions. Any fields that will be interpolated by S3
* must be added to the fields hash after signing, and an appropriate
* condition for such fields must be explicitly added to the Conditions
* array passed to this function before signing.
*
* @example Presiging post data with a known key
* var params = {
* Bucket: 'bucket',
* Fields: {
* key: 'key'
* }
* };
* s3.createPresignedPost(params, function(err, data) {
* if (err) {
* console.error('Presigning post data encountered an error', err);
* } else {
* console.log('The post data is', data);
* }
* });
*
* @example Presigning post data with an interpolated key
* var params = {
* Bucket: 'bucket',
* Conditions: [
* ['starts-with', '$key', 'path/to/uploads/']
* ]
* };
* s3.createPresignedPost(params, function(err, data) {
* if (err) {
* console.error('Presigning post data encountered an error', err);
* } else {
* data.Fields.key = 'path/to/uploads/${filename}';
* console.log('The post data is', data);
* }
* });
*
* @note You must ensure that you have static or previously resolved
* credentials if you call this method synchronously (with no callback),
* otherwise it may not properly sign the request. If you cannot guarantee
* this (you are using an asynchronous credential provider, i.e., EC2
* IAM roles), you should always call this method with an asynchronous
* callback.
*
* @return [map] If called synchronously (with no callback), returns a hash
* with the url to set as the form action and a hash of fields
* to include in the form.
* @return [null] Nothing is returned if a callback is provided.
*
* @callback callback function (err, data)
* @param err [Error] the error object returned from the policy signer
* @param data [map] The data necessary to construct an HTML form
* @param data.url [String] The URL to use as the action of the form
* @param data.fields [map] A hash of fields that must be included in the
* form for the upload to succeed. This hash will
* include the signed POST policy, your access key
* ID and security token (if present), etc. These
* may be safely included as input elements of type
* 'hidden.'
*/
createPresignedPost: function createPresignedPost(params, callback) {
if (typeof params === 'function' && callback === undefined) {
callback = params;
params = null;
}
params = AWS.util.copy(params || {});
var boundParams = this.config.params || {};
var bucket = params.Bucket || boundParams.Bucket,
self = this,
config = this.config,
endpoint = AWS.util.copy(this.endpoint);
if (!config.s3BucketEndpoint) {
endpoint.pathname = '/' + bucket;
}
function finalizePost() {
return {
url: AWS.util.urlFormat(endpoint),
fields: self.preparePostFields(
config.credentials,
config.region,
bucket,
params.Fields,
params.Conditions,
params.Expires
)
};
}
if (callback) {
config.getCredentials(function (err) {
if (err) {
callback(err);
} else {
try {
callback(null, finalizePost());
} catch (err) {
callback(err);
}
}
});
} else {
return finalizePost();
}
},
/**
* @api private
*/
preparePostFields: function preparePostFields(
credentials,
region,
bucket,
fields,
conditions,
expiresInSeconds
) {
var now = this.getSkewCorrectedDate();
if (!credentials || !region || !bucket) {
throw new Error('Unable to create a POST object policy without a bucket,'
+ ' region, and credentials');
}
fields = AWS.util.copy(fields || {});
conditions = (conditions || []).slice(0);
expiresInSeconds = expiresInSeconds || 3600;
var signingDate = AWS.util.date.iso8601(now).replace(/[:\-]|\.\d{3}/g, '');
var shortDate = signingDate.substr(0, 8);
var scope = v4Credentials.createScope(shortDate, region, 's3');
var credential = credentials.accessKeyId + '/' + scope;
fields['bucket'] = bucket;
fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';
fields['X-Amz-Credential'] = credential;
fields['X-Amz-Date'] = signingDate;
if (credentials.sessionToken) {
fields['X-Amz-Security-Token'] = credentials.sessionToken;
}
for (var field in fields) {
if (fields.hasOwnProperty(field)) {
var condition = {};
condition[field] = fields[field];
conditions.push(condition);
}
}
fields.Policy = this.preparePostPolicy(
new Date(now.valueOf() + expiresInSeconds * 1000),
conditions
);
fields['X-Amz-Signature'] = AWS.util.crypto.hmac(
v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true),
fields.Policy,
'hex'
);
return fields;
},
/**
* @api private
*/
preparePostPolicy: function preparePostPolicy(expiration, conditions) {
return AWS.util.base64.encode(JSON.stringify({
expiration: AWS.util.date.iso8601(expiration),
conditions: conditions
}));
},
/**
* @api private
*/
prepareSignedUrl: function prepareSignedUrl(request) {
request.addListener('validate', request.service.noPresignedContentLength);
request.removeListener('build', request.service.addContentType);
if (!request.params.Body) {
// no Content-MD5/SHA-256 if body is not provided
request.removeListener('build', request.service.computeContentMd5);
} else {
request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);
}
},
/**
* @api private
* @param request
*/
disableBodySigning: function disableBodySigning(request) {
var headers = request.httpRequest.headers;
// Add the header to anything that isn't a presigned url, unless that presigned url had a body defined
if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) {
headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';
}
},
/**
* @api private
*/
noPresignedContentLength: function noPresignedContentLength(request) {
if (request.params.ContentLength !== undefined) {
throw AWS.util.error(new Error(), {code: 'UnexpectedParameter',
message: 'ContentLength is not supported in pre-signed URLs.'});
}
},
createBucket: function createBucket(params, callback) {
// When creating a bucket *outside* the classic region, the location
// constraint must be set for the bucket and it must match the endpoint.
// This chunk of code will set the location constraint param based
// on the region (when possible), but it will not override a passed-in
// location constraint.
if (typeof params === 'function' || !params) {
callback = callback || params;
params = {};
}
var hostname = this.endpoint.hostname;
// copy params so that appending keys does not unintentioinallly
// mutate params object argument passed in by user
var copiedParams = AWS.util.copy(params);
if (
this.config.region !== 'us-east-1'
&& hostname !== this.api.globalEndpoint
&& !params.CreateBucketConfiguration
) {
copiedParams.CreateBucketConfiguration = { LocationConstraint: this.config.region };
}
return this.makeRequest('createBucket', copiedParams, callback);
},
writeGetObjectResponse: function writeGetObjectResponse(params, callback) {
var request = this.makeRequest('writeGetObjectResponse', AWS.util.copy(params), callback);
var hostname = this.endpoint.hostname;
if (hostname.indexOf(this.config.region) !== -1) {
// hostname specifies a region already
hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.');
} else {
// Hostname doesn't have a region.
// Object Lambda requires an explicit region.
hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.' + this.config.region + '.');
}
request.httpRequest.endpoint = new AWS.Endpoint(hostname, this.config);
return request;
},
/**
* @see AWS.S3.ManagedUpload
* @overload upload(params = {}, [options], [callback])
* Uploads an arbitrarily sized buffer, blob, or stream, using intelligent
* concurrent handling of parts if the payload is large enough. You can
* configure the concurrent queue size by setting `options`. Note that this
* is the only operation for which the SDK can retry requests with stream
* bodies.
*
* @param (see AWS.S3.putObject)
* @option (see AWS.S3.ManagedUpload.constructor)
* @return [AWS.S3.ManagedUpload] the managed upload object that can call
* `send()` or track progress.
* @example Uploading a stream object
* var params = {Bucket: 'bucket', Key: 'key', Body: stream};
* s3.upload(params, function(err, data) {
* console.log(err, data);
* });
* @example Uploading a stream with concurrency of 1 and partSize of 10mb
* var params = {Bucket: 'bucket', Key: 'key', Body: stream};
* var options = {partSize: 10 * 1024 * 1024, queueSize: 1};
* s3.upload(params, options, function(err, data) {
* console.log(err, data);
* });
* @callback callback function(err, data)
* @param err [Error] an error or null if no error occurred.
* @param data [map] The response data from the successful upload:
* @param data.Location [String] the URL of the uploaded object
* @param data.ETag [String] the ETag of the uploaded object
* @param data.Bucket [String] the bucket to which the object was uploaded
* @param data.Key [String] the key to which the object was uploaded
*/
upload: function upload(params, options, callback) {
if (typeof options === 'function' && callback === undefined) {
callback = options;
options = null;
}
options = options || {};
options = AWS.util.merge(options || {}, {service: this, params: params});
var uploader = new AWS.S3.ManagedUpload(options);
if (typeof callback === 'function') uploader.send(callback);
return uploader;
},
/**
* @api private
*/
setExpiresString: function setExpiresString(response) {
// Check if response contains Expires value, and populate ExpiresString.
if (response && response.httpResponse && response.httpResponse.headers) {
if ('expires' in response.httpResponse.headers) {
response.httpResponse.headers.expiresstring = response.httpResponse.headers.expires;
}
}
// Check if value in Expires is not a Date using parseTimestamp.
try {
if (response && response.httpResponse && response.httpResponse.headers) {
if ('expires' in response.httpResponse.headers) {
AWS.util.date.parseTimestamp(response.httpResponse.headers.expires);
}
}
} catch (e) {
console.log('AWS SDK', '(warning)', e);
delete response.httpResponse.headers.expires;
}
}
});
/**
* @api private
*/
AWS.S3.addPromisesToClass = function addPromisesToClass(PromiseDependency) {
this.prototype.getSignedUrlPromise = AWS.util.promisifyMethod('getSignedUrl', PromiseDependency);
};
/**
* @api private
*/
AWS.S3.deletePromisesFromClass = function deletePromisesFromClass() {
delete this.prototype.getSignedUrlPromise;
};
AWS.util.addPromises(AWS.S3);
/***/ }),
/* 1403 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {var AWS = __webpack_require__(7);
var regionUtil = __webpack_require__(281);
var s3util = {
/**
* @api private
*/
isArnInParam: function isArnInParam(req, paramName) {
var inputShape = (req.service.api.operations[req.operation] || {}).input || {};
var inputMembers = inputShape.members || {};
if (!req.params[paramName] || !inputMembers[paramName]) return false;
return AWS.util.ARN.validate(req.params[paramName]);
},
/**
* Validate service component from ARN supplied in Bucket parameter
*/
validateArnService: function validateArnService(req) {
var parsedArn = req._parsedArn;
if (parsedArn.service !== 's3'
&& parsedArn.service !== 's3-outposts'
&& parsedArn.service !== 's3-object-lambda') {
throw AWS.util.error(new Error(), {
code: 'InvalidARN',
message: 'expect \'s3\' or \'s3-outposts\' or \'s3-object-lambda\' in ARN service component'
});
}
},
/**
* Validate account ID from ARN supplied in Bucket parameter is a valid account
*/
validateArnAccount: function validateArnAccount(req) {
var parsedArn = req._parsedArn;
if (!/[0-9]{12}/.exec(parsedArn.accountId)) {
throw AWS.util.error(new Error(), {
code: 'InvalidARN',
message: 'ARN accountID does not match regex "[0-9]{12}"'
});
}
},
/**
* Validate ARN supplied in Bucket parameter is a valid access point ARN
*/
validateS3AccessPointArn: function validateS3AccessPointArn(req) {
var parsedArn = req._parsedArn;
//can be ':' or '/'
var delimiter = parsedArn.resource['accesspoint'.length];
if (parsedArn.resource.split(delimiter).length !== 2) {
throw AWS.util.error(new Error(), {
code: 'InvalidARN',
message: 'Access Point ARN should have one resource accesspoint/{accesspointName}'
});
}
var accessPoint = parsedArn.resource.split(delimiter)[1];
var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;
if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\./)) {
throw AWS.util.error(new Error(), {
code: 'InvalidARN',
message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint
});
}
//set parsed valid access point
req._parsedArn.accessPoint = accessPoint;
},
/**
* Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN
*/
validateOutpostsArn: function validateOutpostsArn(req) {
var parsedArn = req._parsedArn;
if (
parsedArn.resource.indexOf('outpost:') !== 0 &&
parsedArn.resource.indexOf('outpost/') !== 0
) {
throw AWS.util.error(new Error(), {
code: 'InvalidARN',
message: 'ARN resource should begin with \'outpost/\''
});
}
//can be ':' or '/'
var delimiter = parsedArn.resource['outpost'.length];
var outpostId = parsedArn.resource.split(delimiter)[1];
var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);
if (!dnsHostRegex.test(outpostId)) {
throw AWS.util.error(new Error(), {
code: 'InvalidARN',
message: 'Outpost resource in ARN is not DNS compatible. Got ' + outpostId
});
}
req._parsedArn.outpostId = outpostId;
},
/**
* Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN
*/
validateOutpostsAccessPointArn: function validateOutpostsAccessPointArn(req) {
var parsedArn = req._parsedArn;
//can be ':' or '/'
var delimiter = parsedArn.resource['outpost'.length];
if (parsedArn.resource.split(delimiter).length !== 4) {
throw AWS.util.error(new Error(), {
code: 'InvalidARN',
message: 'Outposts ARN should have two resources outpost/{outpostId}/accesspoint/{accesspointName}'
});
}
var accessPoint = parsedArn.resource.split(delimiter)[3];
var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;
if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\./)) {
throw AWS.util.error(new Error(), {
code: 'InvalidARN',
message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint
});
}
//set parsed valid access point
req._parsedArn.accessPoint = accessPoint;
},
/**
* Validate region field in ARN supplied in Bucket parameter is a valid region
*/
validateArnRegion: function validateArnRegion(req, options) {
if (options === undefined) {
options = {};
}
var useArnRegion = s3util.loadUseArnRegionConfig(req);
var regionFromArn = req._parsedArn.region;
var clientRegion = req.service.config.region;
var useFipsEndpoint = req.service.config.useFipsEndpoint;
var allowFipsEndpoint = options.allowFipsEndpoint || false;
if (!regionFromArn) {
var message = 'ARN region is empty';
if (req._parsedArn.service === 's3') {
message = message + '\nYou may want to use multi-regional ARN. The feature is not supported in current SDK. ' +
'You should consider switching to V3(https://github.com/aws/aws-sdk-js-v3).';
}
throw AWS.util.error(new Error(), {
code: 'InvalidARN',
message: message
});
}
if (useFipsEndpoint && !allowFipsEndpoint) {
throw AWS.util.error(new Error(), {
code: 'InvalidConfiguration',
message: 'ARN endpoint is not compatible with FIPS region'
});
}
if (regionFromArn.indexOf('fips') >= 0) {
throw AWS.util.error(new Error(), {
code: 'InvalidConfiguration',
message: 'FIPS region not allowed in ARN'
});
}
if (!useArnRegion && regionFromArn !== clientRegion) {
throw AWS.util.error(new Error(), {
code: 'InvalidConfiguration',
message: 'Configured region conflicts with access point region'
});
} else if (
useArnRegion &&
regionUtil.getEndpointSuffix(regionFromArn) !== regionUtil.getEndpointSuffix(clientRegion)
) {
throw AWS.util.error(new Error(), {
code: 'InvalidConfiguration',
message: 'Configured region and access point region not in same partition'
});
}
if (req.service.config.useAccelerateEndpoint) {
throw AWS.util.error(new Error(), {
code: 'InvalidConfiguration',
message: 'useAccelerateEndpoint config is not supported with access point ARN'
});
}
if (req._parsedArn.service === 's3-outposts' && req.service.config.useDualstackEndpoint) {
throw AWS.util.error(new Error(), {
code: 'InvalidConfiguration',
message: 'Dualstack is not supported with outposts access point ARN'
});
}
},
loadUseArnRegionConfig: function loadUseArnRegionConfig(req) {
var envName = 'AWS_S3_USE_ARN_REGION';
var configName = 's3_use_arn_region';
var useArnRegion = true;
var originalConfig = req.service._originalConfig || {};
if (req.service.config.s3UseArnRegion !== undefined) {
return req.service.config.s3UseArnRegion;
} else if (originalConfig.s3UseArnRegion !== undefined) {
useArnRegion = originalConfig.s3UseArnRegion === true;
} else if (AWS.util.isNode()) {
//load from environmental variable AWS_USE_ARN_REGION
if (process.env[envName]) {
var value = process.env[envName].trim().toLowerCase();
if (['false', 'true'].indexOf(value) < 0) {
throw AWS.util.error(new Error(), {
code: 'InvalidConfiguration',
message: envName + ' only accepts true or false. Got ' + process.env[envName],
retryable: false
});
}
useArnRegion = value === 'true';
} else { //load from shared config property use_arn_region
var profiles = {};
var profile = {};
try {
profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);
profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];
} catch (e) {}
if (profile[configName]) {
if (['false', 'true'].indexOf(profile[configName].trim().toLowerCase()) < 0) {
throw AWS.util.error(new Error(), {
code: 'InvalidConfiguration',
message: configName + ' only accepts true or false. Got ' + profile[configName],
retryable: false
});
}
useArnRegion = profile[configName].trim().toLowerCase() === 'true';
}
}
}
req.service.config.s3UseArnRegion = useArnRegion;
return useArnRegion;
},
/**
* Validations before URI can be populated
*/
validatePopulateUriFromArn: function validatePopulateUriFromArn(req) {
if (req.service._originalConfig && req.service._originalConfig.endpoint) {
throw AWS.util.error(new Error(), {
code: 'InvalidConfiguration',
message: 'Custom endpoint is not compatible with access point ARN'
});
}
if (req.service.config.s3ForcePathStyle) {
throw AWS.util.error(new Error(), {
code: 'InvalidConfiguration',
message: 'Cannot construct path-style endpoint with access point'
});
}
},
/**
* Returns true if the bucket name is DNS compatible. Buckets created
* outside of the classic region MUST be DNS compatible.
*
* @api private
*/
dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) {
var b = bucketName;
var domain = new RegExp(/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/);
var ipAddress = new RegExp(/(\d+\.){3}\d+/);
var dots = new RegExp(/\.\./);
return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false;
},
};
/**
* @api private
*/
module.exports = s3util;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(26)))
/***/ }),
/* 1404 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
AWS.util.update(AWS.SQS.prototype, {
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(request) {
request.addListener('build', this.buildEndpoint);
if (request.service.config.computeChecksums) {
if (request.operation === 'sendMessage') {
request.addListener('extractData', this.verifySendMessageChecksum);
} else if (request.operation === 'sendMessageBatch') {
request.addListener('extractData', this.verifySendMessageBatchChecksum);
} else if (request.operation === 'receiveMessage') {
request.addListener('extractData', this.verifyReceiveMessageChecksum);
}
}
},
/**
* @api private
*/
verifySendMessageChecksum: function verifySendMessageChecksum(response) {
if (!response.data) return;
var md5 = response.data.MD5OfMessageBody;
var body = this.params.MessageBody;
var calculatedMd5 = this.service.calculateChecksum(body);
if (calculatedMd5 !== md5) {
var msg = 'Got "' + response.data.MD5OfMessageBody +
'", expecting "' + calculatedMd5 + '".';
this.service.throwInvalidChecksumError(response,
[response.data.MessageId], msg);
}
},
/**
* @api private
*/
verifySendMessageBatchChecksum: function verifySendMessageBatchChecksum(response) {
if (!response.data) return;
var service = this.service;
var entries = {};
var errors = [];
var messageIds = [];
AWS.util.arrayEach(response.data.Successful, function (entry) {
entries[entry.Id] = entry;
});
AWS.util.arrayEach(this.params.Entries, function (entry) {
if (entries[entry.Id]) {
var md5 = entries[entry.Id].MD5OfMessageBody;
var body = entry.MessageBody;
if (!service.isChecksumValid(md5, body)) {
errors.push(entry.Id);
messageIds.push(entries[entry.Id].MessageId);
}
}
});
if (errors.length > 0) {
service.throwInvalidChecksumError(response, messageIds,
'Invalid messages: ' + errors.join(', '));
}
},
/**
* @api private
*/
verifyReceiveMessageChecksum: function verifyReceiveMessageChecksum(response) {
if (!response.data) return;
var service = this.service;
var messageIds = [];
AWS.util.arrayEach(response.data.Messages, function(message) {
var md5 = message.MD5OfBody;
var body = message.Body;
if (!service.isChecksumValid(md5, body)) {
messageIds.push(message.MessageId);
}
});
if (messageIds.length > 0) {
service.throwInvalidChecksumError(response, messageIds,
'Invalid messages: ' + messageIds.join(', '));
}
},
/**
* @api private
*/
throwInvalidChecksumError: function throwInvalidChecksumError(response, ids, message) {
response.error = AWS.util.error(new Error(), {
retryable: true,
code: 'InvalidChecksum',
messageIds: ids,
message: response.request.operation +
' returned an invalid MD5 response. ' + message
});
},
/**
* @api private
*/
isChecksumValid: function isChecksumValid(checksum, data) {
return this.calculateChecksum(data) === checksum;
},
/**
* @api private
*/
calculateChecksum: function calculateChecksum(data) {
return AWS.util.crypto.md5(data, 'hex');
},
/**
* @api private
*/
buildEndpoint: function buildEndpoint(request) {
var url = request.httpRequest.params.QueueUrl;
if (url) {
request.httpRequest.endpoint = new AWS.Endpoint(url);
// signature version 4 requires the region name to be set,
// sqs queue urls contain the region name
var matches = request.httpRequest.endpoint.host.match(/^sqs\.(.+?)\./);
if (matches) request.httpRequest.region = matches[1];
}
}
});
/***/ }),
/* 1405 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
var resolveRegionalEndpointsFlag = __webpack_require__(421);
var ENV_REGIONAL_ENDPOINT_ENABLED = 'AWS_STS_REGIONAL_ENDPOINTS';
var CONFIG_REGIONAL_ENDPOINT_ENABLED = 'sts_regional_endpoints';
AWS.util.update(AWS.STS.prototype, {
/**
* @overload credentialsFrom(data, credentials = null)
* Creates a credentials object from STS response data containing
* credentials information. Useful for quickly setting AWS credentials.
*
* @note This is a low-level utility function. If you want to load temporary
* credentials into your process for subsequent requests to AWS resources,
* you should use {AWS.TemporaryCredentials} instead.
* @param data [map] data retrieved from a call to {getFederatedToken},
* {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}.
* @param credentials [AWS.Credentials] an optional credentials object to
* fill instead of creating a new object. Useful when modifying an
* existing credentials object from a refresh call.
* @return [AWS.TemporaryCredentials] the set of temporary credentials
* loaded from a raw STS operation response.
* @example Using credentialsFrom to load global AWS credentials
* var sts = new AWS.STS();
* sts.getSessionToken(function (err, data) {
* if (err) console.log("Error getting credentials");
* else {
* AWS.config.credentials = sts.credentialsFrom(data);
* }
* });
* @see AWS.TemporaryCredentials
*/
credentialsFrom: function credentialsFrom(data, credentials) {
if (!data) return null;
if (!credentials) credentials = new AWS.TemporaryCredentials();
credentials.expired = false;
credentials.accessKeyId = data.Credentials.AccessKeyId;
credentials.secretAccessKey = data.Credentials.SecretAccessKey;
credentials.sessionToken = data.Credentials.SessionToken;
credentials.expireTime = data.Credentials.Expiration;
return credentials;
},
assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) {
return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback);
},
assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) {
return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback);
},
/**
* @api private
*/
setupRequestListeners: function setupRequestListeners(request) {
request.addListener('validate', this.optInRegionalEndpoint, true);
},
/**
* @api private
*/
optInRegionalEndpoint: function optInRegionalEndpoint(req) {
var service = req.service;
var config = service.config;
config.stsRegionalEndpoints = resolveRegionalEndpointsFlag(service._originalConfig, {
env: ENV_REGIONAL_ENDPOINT_ENABLED,
sharedConfig: CONFIG_REGIONAL_ENDPOINT_ENABLED,
clientConfig: 'stsRegionalEndpoints'
});
if (
config.stsRegionalEndpoints === 'regional' &&
service.isGlobalEndpoint
) {
//client will throw if region is not supplied; request will be signed with specified region
if (!config.region) {
throw AWS.util.error(new Error(),
{code: 'ConfigError', message: 'Missing region in config'});
}
var insertPoint = config.endpoint.indexOf('.amazonaws.com');
var regionalEndpoint = config.endpoint.substring(0, insertPoint) +
'.' + config.region + config.endpoint.substring(insertPoint);
req.httpRequest.updateEndpoint(regionalEndpoint);
req.httpRequest.region = config.region;
}
}
});
/***/ }),
/* 1406 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
/**
* @api private
*/
AWS.Signers.Bearer = AWS.util.inherit(AWS.Signers.RequestSigner, {
constructor: function Bearer(request) {
AWS.Signers.RequestSigner.call(this, request);
},
addAuthorization: function addAuthorization(token) {
this.request.headers['Authorization'] = 'Bearer ' + token.token;
}
});
/***/ }),
/* 1407 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
var inherit = AWS.util.inherit;
/**
* @api private
*/
var expiresHeader = 'presigned-expires';
/**
* @api private
*/
function signedUrlBuilder(request) {
var expires = request.httpRequest.headers[expiresHeader];
var signerClass = request.service.getSignerClass(request);
delete request.httpRequest.headers['User-Agent'];
delete request.httpRequest.headers['X-Amz-User-Agent'];
if (signerClass === AWS.Signers.V4) {
if (expires > 604800) { // one week expiry is invalid
var message = 'Presigning does not support expiry time greater ' +
'than a week with SigV4 signing.';
throw AWS.util.error(new Error(), {
code: 'InvalidExpiryTime', message: message, retryable: false
});
}
request.httpRequest.headers[expiresHeader] = expires;
} else if (signerClass === AWS.Signers.S3) {
var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate();
request.httpRequest.headers[expiresHeader] = parseInt(
AWS.util.date.unixTimestamp(now) + expires, 10).toString();
} else {
throw AWS.util.error(new Error(), {
message: 'Presigning only supports S3 or SigV4 signing.',
code: 'UnsupportedSigner', retryable: false
});
}
}
/**
* @api private
*/
function signedUrlSigner(request) {
var endpoint = request.httpRequest.endpoint;
var parsedUrl = AWS.util.urlParse(request.httpRequest.path);
var queryParams = {};
if (parsedUrl.search) {
queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1));
}
var auth = request.httpRequest.headers['Authorization'].split(' ');
if (auth[0] === 'AWS') {
auth = auth[1].split(':');
queryParams['Signature'] = auth.pop();
queryParams['AWSAccessKeyId'] = auth.join(':');
AWS.util.each(request.httpRequest.headers, function (key, value) {
if (key === expiresHeader) key = 'Expires';
if (key.indexOf('x-amz-meta-') === 0) {
// Delete existing, potentially not normalized key
delete queryParams[key];
key = key.toLowerCase();
}
queryParams[key] = value;
});
delete request.httpRequest.headers[expiresHeader];
delete queryParams['Authorization'];
delete queryParams['Host'];
} else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing
auth.shift();
var rest = auth.join(' ');
var signature = rest.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];
queryParams['X-Amz-Signature'] = signature;
delete queryParams['Expires'];
}
// build URL
endpoint.pathname = parsedUrl.pathname;
endpoint.search = AWS.util.queryParamsToString(queryParams);
}
/**
* @api private
*/
AWS.Signers.Presign = inherit({
/**
* @api private
*/
sign: function sign(request, expireTime, callback) {
request.httpRequest.headers[expiresHeader] = expireTime || 3600;
request.on('build', signedUrlBuilder);
request.on('sign', signedUrlSigner);
request.removeListener('afterBuild',
AWS.EventListeners.Core.SET_CONTENT_LENGTH);
request.removeListener('afterBuild',
AWS.EventListeners.Core.COMPUTE_SHA256);
request.emit('beforePresign', [request]);
if (callback) {
request.build(function() {
if (this.response.error) callback(this.response.error);
else {
callback(null, AWS.util.urlFormat(request.httpRequest.endpoint));
}
});
} else {
request.build();
if (request.response.error) throw request.response.error;
return AWS.util.urlFormat(request.httpRequest.endpoint);
}
}
});
/**
* @api private
*/
module.exports = AWS.Signers.Presign;
/***/ }),
/* 1408 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
var inherit = AWS.util.inherit;
/**
* @api private
*/
AWS.Signers.RequestSigner = inherit({
constructor: function RequestSigner(request) {
this.request = request;
},
setServiceClientId: function setServiceClientId(id) {
this.serviceClientId = id;
},
getServiceClientId: function getServiceClientId() {
return this.serviceClientId;
}
});
AWS.Signers.RequestSigner.getVersion = function getVersion(version) {
switch (version) {
case 'v2': return AWS.Signers.V2;
case 'v3': return AWS.Signers.V3;
case 's3v4': return AWS.Signers.V4;
case 'v4': return AWS.Signers.V4;
case 's3': return AWS.Signers.S3;
case 'v3https': return AWS.Signers.V3Https;
case 'bearer': return AWS.Signers.Bearer;
}
throw new Error('Unknown signing version ' + version);
};
__webpack_require__(1410);
__webpack_require__(436);
__webpack_require__(1411);
__webpack_require__(1412);
__webpack_require__(1409);
__webpack_require__(1407);
__webpack_require__(1406);
/***/ }),
/* 1409 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
var inherit = AWS.util.inherit;
/**
* @api private
*/
AWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, {
/**
* When building the stringToSign, these sub resource params should be
* part of the canonical resource string with their NON-decoded values
*/
subResources: {
'acl': 1,
'accelerate': 1,
'analytics': 1,
'cors': 1,
'lifecycle': 1,
'delete': 1,
'inventory': 1,
'location': 1,
'logging': 1,
'metrics': 1,
'notification': 1,
'partNumber': 1,
'policy': 1,
'requestPayment': 1,
'replication': 1,
'restore': 1,
'tagging': 1,
'torrent': 1,
'uploadId': 1,
'uploads': 1,
'versionId': 1,
'versioning': 1,
'versions': 1,
'website': 1
},
// when building the stringToSign, these querystring params should be
// part of the canonical resource string with their NON-encoded values
responseHeaders: {
'response-content-type': 1,
'response-content-language': 1,
'response-expires': 1,
'response-cache-control': 1,
'response-content-disposition': 1,
'response-content-encoding': 1
},
addAuthorization: function addAuthorization(credentials, date) {
if (!this.request.headers['presigned-expires']) {
this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date);
}
if (credentials.sessionToken) {
// presigned URLs require this header to be lowercased
this.request.headers['x-amz-security-token'] = credentials.sessionToken;
}
var signature = this.sign(credentials.secretAccessKey, this.stringToSign());
var auth = 'AWS ' + credentials.accessKeyId + ':' + signature;
this.request.headers['Authorization'] = auth;
},
stringToSign: function stringToSign() {
var r = this.request;
var parts = [];
parts.push(r.method);
parts.push(r.headers['Content-MD5'] || '');
parts.push(r.headers['Content-Type'] || '');
// This is the "Date" header, but we use X-Amz-Date.
// The S3 signing mechanism requires us to pass an empty
// string for this Date header regardless.
parts.push(r.headers['presigned-expires'] || '');
var headers = this.canonicalizedAmzHeaders();
if (headers) parts.push(headers);
parts.push(this.canonicalizedResource());
return parts.join('\n');
},
canonicalizedAmzHeaders: function canonicalizedAmzHeaders() {
var amzHeaders = [];
AWS.util.each(this.request.headers, function (name) {
if (name.match(/^x-amz-/i))
amzHeaders.push(name);
});
amzHeaders.sort(function (a, b) {
return a.toLowerCase() < b.toLowerCase() ? -1 : 1;
});
var parts = [];
AWS.util.arrayEach.call(this, amzHeaders, function (name) {
parts.push(name.toLowerCase() + ':' + String(this.request.headers[name]));
});
return parts.join('\n');
},
canonicalizedResource: function canonicalizedResource() {
var r = this.request;
var parts = r.path.split('?');
var path = parts[0];
var querystring = parts[1];
var resource = '';
if (r.virtualHostedBucket)
resource += '/' + r.virtualHostedBucket;
resource += path;
if (querystring) {
// collect a list of sub resources and query params that need to be signed
var resources = [];
AWS.util.arrayEach.call(this, querystring.split('&'), function (param) {
var name = param.split('=')[0];
var value = param.split('=')[1];
if (this.subResources[name] || this.responseHeaders[name]) {
var subresource = { name: name };
if (value !== undefined) {
if (this.subResources[name]) {
subresource.value = value;
} else {
subresource.value = decodeURIComponent(value);
}
}
resources.push(subresource);
}
});
resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; });
if (resources.length) {
querystring = [];
AWS.util.arrayEach(resources, function (res) {
if (res.value === undefined) {
querystring.push(res.name);
} else {
querystring.push(res.name + '=' + res.value);
}
});
resource += '?' + querystring.join('&');
}
}
return resource;
},
sign: function sign(secret, string) {
return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1');
}
});
/**
* @api private
*/
module.exports = AWS.Signers.S3;
/***/ }),
/* 1410 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
var inherit = AWS.util.inherit;
/**
* @api private
*/
AWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {
addAuthorization: function addAuthorization(credentials, date) {
if (!date) date = AWS.util.date.getDate();
var r = this.request;
r.params.Timestamp = AWS.util.date.iso8601(date);
r.params.SignatureVersion = '2';
r.params.SignatureMethod = 'HmacSHA256';
r.params.AWSAccessKeyId = credentials.accessKeyId;
if (credentials.sessionToken) {
r.params.SecurityToken = credentials.sessionToken;
}
delete r.params.Signature; // delete old Signature for re-signing
r.params.Signature = this.signature(credentials);
r.body = AWS.util.queryParamsToString(r.params);
r.headers['Content-Length'] = r.body.length;
},
signature: function signature(credentials) {
return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');
},
stringToSign: function stringToSign() {
var parts = [];
parts.push(this.request.method);
parts.push(this.request.endpoint.host.toLowerCase());
parts.push(this.request.pathname());
parts.push(AWS.util.queryParamsToString(this.request.params));
return parts.join('\n');
}
});
/**
* @api private
*/
module.exports = AWS.Signers.V2;
/***/ }),
/* 1411 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
var inherit = AWS.util.inherit;
__webpack_require__(436);
/**
* @api private
*/
AWS.Signers.V3Https = inherit(AWS.Signers.V3, {
authorization: function authorization(credentials) {
return 'AWS3-HTTPS ' +
'AWSAccessKeyId=' + credentials.accessKeyId + ',' +
'Algorithm=HmacSHA256,' +
'Signature=' + this.signature(credentials);
},
stringToSign: function stringToSign() {
return this.request.headers['X-Amz-Date'];
}
});
/**
* @api private
*/
module.exports = AWS.Signers.V3Https;
/***/ }),
/* 1412 */
/***/ (function(module, exports, __webpack_require__) {
var AWS = __webpack_require__(7);
var v4Credentials = __webpack_require__(437);
var inherit = AWS.util.inherit;
/**
* @api private
*/
var expiresHeader = 'presigned-expires';
/**
* @api private
*/
AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, {
constructor: function V4(request, serviceName, options) {
AWS.Signers.RequestSigner.call(this, request);
this.serviceName = serviceName;
options = options || {};
this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true;
this.operation = options.operation;
this.signatureVersion = options.signatureVersion;
},
algorithm: 'AWS4-HMAC-SHA256',
addAuthorization: function addAuthorization(credentials, date) {
var datetime = AWS.util.date.iso8601(date).replace(/[:\-]|\.\d{3}/g, '');
if (this.isPresigned()) {
this.updateForPresigned(credentials, datetime);
} else {
this.addHeaders(credentials, datetime);
}
this.request.headers['Authorization'] =
this.authorization(credentials, datetime);
},
addHeaders: function addHeaders(credentials, datetime) {
this.request.headers['X-Amz-Date'] = datetime;
if (credentials.sessionToken) {
this.request.headers['x-amz-security-token'] = credentials.sessionToken;
}
},
updateForPresigned: function updateForPresigned(credentials, datetime) {
var credString = this.credentialString(datetime);
var qs = {
'X-Amz-Date': datetime,
'X-Amz-Algorithm': this.algorithm,
'X-Amz-Credential': credentials.accessKeyId + '/' + credString,
'X-Amz-Expires': this.request.headers[expiresHeader],
'X-Amz-SignedHeaders': this.signedHeaders()
};
if (credentials.sessionToken) {
qs['X-Amz-Security-Token'] = credentials.sessionToken;
}
if (this.request.headers['Content-Type']) {
qs['Content-Type'] = this.request.headers['Content-Type'];
}
if (this.request.headers['Content-MD5']) {
qs['Content-MD5'] = this.request.headers['Content-MD5'];
}
if (this.request.headers['Cache-Control']) {
qs['Cache-Control'] = this.request.headers['Cache-Control'];
}
// need to pull in any other X-Amz-* headers
AWS.util.each.call(this, this.request.headers, function(key, value) {
if (key === expiresHeader) return;
if (this.isSignableHeader(key)) {
var lowerKey = key.toLowerCase();
// Metadata should be normalized
if (lowerKey.indexOf('x-amz-meta-') === 0) {
qs[lowerKey] = value;
} else if (lowerKey.indexOf('x-amz-') === 0) {
qs[key] = value;
}
}
});
var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?';
this.request.path += sep + AWS.util.queryParamsToString(qs);
},
authorization: function authorization(credentials, datetime) {
var parts = [];
var credString = this.credentialString(datetime);
parts.push(this.algorithm + ' Credential=' +
credentials.accessKeyId + '/' + credString);
parts.push('SignedHeaders=' + this.signedHeaders());
parts.push('Signature=' + this.signature(credentials, datetime));
return parts.join(', ');
},
signature: function signature(credentials, datetime) {
var signingKey = v4Credentials.getSigningKey(
credentials,
datetime.substr(0, 8),
this.request.region,
this.serviceName,
this.signatureCache
);
return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex');
},
stringToSign: function stringToSign(datetime) {
var parts = [];
parts.push('AWS4-HMAC-SHA256');
parts.push(datetime);
parts.push(this.credentialString(datetime));
parts.push(this.hexEncodedHash(this.canonicalString()));
return parts.join('\n');
},
canonicalString: function canonicalString() {
var parts = [], pathname = this.request.pathname();
if (this.serviceName !== 's3' && this.signatureVersion !== 's3v4') pathname = AWS.util.uriEscapePath(pathname);
parts.push(this.request.method);
parts.push(pathname);
parts.push(this.request.search());
parts.push(this.canonicalHeaders() + '\n');
parts.push(this.signedHeaders());
parts.push(this.hexEncodedBodyHash());
return parts.join('\n');
},
canonicalHeaders: function canonicalHeaders() {
var headers = [];
AWS.util.each.call(this, this.request.headers, function (key, item) {
headers.push([key, item]);
});
headers.sort(function (a, b) {
return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1;
});
var parts = [];
AWS.util.arrayEach.call(this, headers, function (item) {
var key = item[0].toLowerCase();
if (this.isSignableHeader(key)) {
var value = item[1];
if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') {
throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), {
code: 'InvalidHeader'
});
}
parts.push(key + ':' +
this.canonicalHeaderValues(value.toString()));
}
});
return parts.join('\n');
},
canonicalHeaderValues: function canonicalHeaderValues(values) {
return values.replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, '');
},
signedHeaders: function signedHeaders() {
var keys = [];
AWS.util.each.call(this, this.request.headers, function (key) {
key = key.toLowerCase();
if (this.isSignableHeader(key)) keys.push(key);
});
return keys.sort().join(';');
},
credentialString: function credentialString(datetime) {
return v4Credentials.createScope(
datetime.substr(0, 8),
this.request.region,
this.serviceName
);
},
hexEncodedHash: function hash(string) {
return AWS.util.crypto.sha256(string, 'hex');
},
hexEncodedBodyHash: function hexEncodedBodyHash() {
var request = this.request;
if (this.isPresigned() && (['s3', 's3-object-lambda'].indexOf(this.serviceName) > -1) && !request.body) {
return 'UNSIGNED-PAYLOAD';
} else if (request.headers['X-Amz-Content-Sha256']) {
return request.headers['X-Amz-Content-Sha256'];
} else {
return this.hexEncodedHash(this.request.body || '');
}
},
unsignableHeaders: [
'authorization',
'content-type',
'content-length',
'user-agent',
expiresHeader,
'expect',
'x-amzn-trace-id'
],
isSignableHeader: function isSignableHeader(key) {
if (key.toLowerCase().indexOf('x-amz-') === 0) return true;
return this.unsignableHeaders.indexOf(key) < 0;
},
isPresigned: function isPresigned() {
return this.request.headers[expiresHeader] ? true : false;
}
});
/**
* @api private
*/
module.exports = AWS.Signers.V4;
/***/ }),
/* 1413 */
/***/ (function(module, exports) {
function AcceptorStateMachine(states, state) {
this.currentState = state || null;
this.states = states || {};
}
AcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) {
if (typeof finalState === 'function') {
inputError = bindObject; bindObject = done;
done = finalState; finalState = null;
}
var self = this;
var state = self.states[self.currentState];
state.fn.call(bindObject || self, inputError, function(err) {
if (err) {
if (state.fail) self.currentState = state.fail;
else return done ? done.call(bindObject, err) : null;
} else {
if (state.accept) self.currentState = state.accept;
else return done ? done.call(bindObject) : null;
}
if (self.currentState === finalState) {
return done ? done.call(bindObject, err) : null;
}
self.runTo(finalState, done, bindObject, err);
});
};
AcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) {
if (typeof acceptState === 'function') {
fn = acceptState; acceptState = null; failState = null;
} else if (typeof failState === 'function') {
fn = failState; failState = null;
}
if (!this.currentState) this.currentState = name;
this.states[name] = { accept: acceptState, fail: failState, fn: fn };
return this;
};
/**
* @api private
*/
module.exports = AcceptorStateMachine;
/***/ }),
/* 1414 */
/***/ (function(module, exports, __webpack_require__) {
var util = __webpack_require__(36);
var Shape = __webpack_require__(174);
function DomXmlParser() { }
DomXmlParser.prototype.parse = function(xml, shape) {
if (xml.replace(/^\s+/, '') === '') return {};
var result, error;
try {
if (window.DOMParser) {
try {
var parser = new DOMParser();
result = parser.parseFromString(xml, 'text/xml');
} catch (syntaxError) {
throw util.error(new Error('Parse error in document'),
{
originalError: syntaxError,
code: 'XMLParserError',
retryable: true
});
}
if (result.documentElement === null) {
throw util.error(new Error('Cannot parse empty document.'),
{
code: 'XMLParserError',
retryable: true
});
}
var isError = result.getElementsByTagName('parsererror')[0];
if (isError && (isError.parentNode === result ||
isError.parentNode.nodeName === 'body' ||
isError.parentNode.parentNode === result ||
isError.parentNode.parentNode.nodeName === 'body')) {
var errorElement = isError.getElementsByTagName('div')[0] || isError;
throw util.error(new Error(errorElement.textContent || 'Parser error in document'),
{
code: 'XMLParserError',
retryable: true
});
}
} else if (window.ActiveXObject) {
result = new window.ActiveXObject('Microsoft.XMLDOM');
result.async = false;
if (!result.loadXML(xml)) {
throw util.error(new Error('Parse error in document'),
{
code: 'XMLParserError',
retryable: true
});
}
} else {
throw new Error('Cannot load XML parser');
}
} catch (e) {
error = e;
}
if (result && result.documentElement && !error) {
var data = parseXml(result.documentElement, shape);
var metadata = getElementByTagName(result.documentElement, 'ResponseMetadata');
if (metadata) {
data.ResponseMetadata = parseXml(metadata, {});
}
return data;
} else if (error) {
throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true});
} else { // empty xml document
return {};
}
};
function getElementByTagName(xml, tag) {
var elements = xml.getElementsByTagName(tag);
for (var i = 0, iLen = elements.length; i < iLen; i++) {
if (elements[i].parentNode === xml) {
return elements[i];
}
}
}
function parseXml(xml, shape) {
if (!shape) shape = {};
switch (shape.type) {
case 'structure': return parseStructure(xml, shape);
case 'map': return parseMap(xml, shape);
case 'list': return parseList(xml, shape);
case undefined: case null: return parseUnknown(xml);
default: return parseScalar(xml, shape);
}
}
function parseStructure(xml, shape) {
var data = {};
if (xml === null) return data;
util.each(shape.members, function(memberName, memberShape) {
if (memberShape.isXmlAttribute) {
if (Object.prototype.hasOwnProperty.call(xml.attributes, memberShape.name)) {
var value = xml.attributes[memberShape.name].value;
data[memberName] = parseXml({textContent: value}, memberShape);
}
} else {
var xmlChild = memberShape.flattened ? xml :
getElementByTagName(xml, memberShape.name);
if (xmlChild) {
data[memberName] = parseXml(xmlChild, memberShape);
} else if (
!memberShape.flattened &&
memberShape.type === 'list' &&
!shape.api.xmlNoDefaultLists) {
data[memberName] = memberShape.defaultValue;
}
}
});
return data;
}
function parseMap(xml, shape) {
var data = {};
var xmlKey = shape.key.name || 'key';
var xmlValue = shape.value.name || 'value';
var tagName = shape.flattened ? shape.name : 'entry';
var child = xml.firstElementChild;
while (child) {
if (child.nodeName === tagName) {
var key = getElementByTagName(child, xmlKey).textContent;
var value = getElementByTagName(child, xmlValue);
data[key] = parseXml(value, shape.value);
}
child = child.nextElementSibling;
}
return data;
}
function parseList(xml, shape) {
var data = [];
var tagName = shape.flattened ? shape.name : (shape.member.name || 'member');
var child = xml.firstElementChild;
while (child) {
if (child.nodeName === tagName) {
data.push(parseXml(child, shape.member));
}
child = child.nextElementSibling;
}
return data;
}
function parseScalar(xml, shape) {
if (xml.getAttribute) {
var encoding = xml.getAttribute('encoding');
if (encoding === 'base64') {
shape = new Shape.create({type: encoding});
}
}
var text = xml.textContent;
if (text === '') text = null;
if (typeof shape.toType === 'function') {
return shape.toType(text);
} else {
return text;
}
}
function parseUnknown(xml) {
if (xml === undefined || xml === null) return '';
// empty object
if (!xml.firstElementChild) {
if (xml.parentNode.parentNode === null) return {};
if (xml.childNodes.length === 0) return '';
else return xml.textContent;
}
// object, parse as structure
var shape = {type: 'structure', members: {}};
var child = xml.firstElementChild;
while (child) {
var tag = child.nodeName;
if (Object.prototype.hasOwnProperty.call(shape.members, tag)) {
// multiple tags of the same name makes it a list
shape.members[tag].type = 'list';
} else {
shape.members[tag] = {name: tag};
}
child = child.nextElementSibling;
}
return parseStructure(xml, shape);
}
/**
* @api private
*/
module.exports = DomXmlParser;
/***/ }),
/* 1415 */
/***/ (function(module, exports, __webpack_require__) {
var util = __webpack_require__(36);
var XmlNode = __webpack_require__(1418).XmlNode;
var XmlText = __webpack_require__(1419).XmlText;
function XmlBuilder() { }
XmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) {
var xml = new XmlNode(rootElement);
applyNamespaces(xml, shape, true);
serialize(xml, params, shape);
return xml.children.length > 0 || noEmpty ? xml.toString() : '';
};
function serialize(xml, value, shape) {
switch (shape.type) {
case 'structure': return serializeStructure(xml, value, shape);
case 'map': return serializeMap(xml, value, shape);
case 'list': return serializeList(xml, value, shape);
default: return serializeScalar(xml, value, shape);
}
}
function serializeStructure(xml, params, shape) {
util.arrayEach(shape.memberNames, function(memberName) {
var memberShape = shape.members[memberName];
if (memberShape.location !== 'body') return;
var value = params[memberName];
var name = memberShape.name;
if (value !== undefined && value !== null) {
if (memberShape.isXmlAttribute) {
xml.addAttribute(name, value);
} else if (memberShape.flattened) {
serialize(xml, value, memberShape);
} else {
var element = new XmlNode(name);
xml.addChildNode(element);
applyNamespaces(element, memberShape);
serialize(element, value, memberShape);
}
}
});
}
function serializeMap(xml, map, shape) {
var xmlKey = shape.key.name || 'key';
var xmlValue = shape.value.name || 'value';
util.each(map, function(key, value) {
var entry = new XmlNode(shape.flattened ? shape.name : 'entry');
xml.addChildNode(entry);
var entryKey = new XmlNode(xmlKey);
var entryValue = new XmlNode(xmlValue);
entry.addChildNode(entryKey);
entry.addChildNode(entryValue);
serialize(entryKey, key, shape.key);
serialize(entryValue, value, shape.value);
});
}
function serializeList(xml, list, shape) {
if (shape.flattened) {
util.arrayEach(list, function(value) {
var name = shape.member.name || shape.name;
var element = new XmlNode(name);
xml.addChildNode(element);
serialize(element, value, shape.member);
});
} else {
util.arrayEach(list, function(value) {
var name = shape.member.name || 'member';
var element = new XmlNode(name);
xml.addChildNode(element);
serialize(element, value, shape.member);
});
}
}
function serializeScalar(xml, value, shape) {
xml.addChildNode(
new XmlText(shape.toWireFormat(value))
);
}
function applyNamespaces(xml, shape, isRoot) {
var uri, prefix = 'xmlns';
if (shape.xmlNamespaceUri) {
uri = shape.xmlNamespaceUri;
if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix;
} else if (isRoot && shape.api.xmlNamespaceUri) {
uri = shape.api.xmlNamespaceUri;
}
if (uri) xml.addAttribute(prefix, uri);
}
/**
* @api private
*/
module.exports = XmlBuilder;
/***/ }),
/* 1416 */
/***/ (function(module, exports) {
/**
* Escapes characters that can not be in an XML attribute.
*/
function escapeAttribute(value) {
return value.replace(/&/g, '&').replace(/'/g, ''').replace(//g, '>').replace(/"/g, '"');
}
/**
* @api private
*/
module.exports = {
escapeAttribute: escapeAttribute
};
/***/ }),
/* 1417 */
/***/ (function(module, exports) {
/**
* Escapes characters that can not be in an XML element.
*/
function escapeElement(value) {
return value.replace(/&/g, '&')
.replace(//g, '>')
.replace(/\r/g, '
')
.replace(/\n/g, '
')
.replace(/\u0085/g, '
')
.replace(/\u2028/, '
');
}
/**
* @api private
*/
module.exports = {
escapeElement: escapeElement
};
/***/ }),
/* 1418 */
/***/ (function(module, exports, __webpack_require__) {
var escapeAttribute = __webpack_require__(1416).escapeAttribute;
/**
* Represents an XML node.
* @api private
*/
function XmlNode(name, children) {
if (children === void 0) { children = []; }
this.name = name;
this.children = children;
this.attributes = {};
}
XmlNode.prototype.addAttribute = function (name, value) {
this.attributes[name] = value;
return this;
};
XmlNode.prototype.addChildNode = function (child) {
this.children.push(child);
return this;
};
XmlNode.prototype.removeAttribute = function (name) {
delete this.attributes[name];
return this;
};
XmlNode.prototype.toString = function () {
var hasChildren = Boolean(this.children.length);
var xmlText = '<' + this.name;
// add attributes
var attributes = this.attributes;
for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) {
var attributeName = attributeNames[i];
var attribute = attributes[attributeName];
if (typeof attribute !== 'undefined' && attribute !== null) {
xmlText += ' ' + attributeName + '=\"' + escapeAttribute('' + attribute) + '\"';
}
}
return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) { return c.toString(); }).join('') + '' + this.name + '>';
};
/**
* @api private
*/
module.exports = {
XmlNode: XmlNode
};
/***/ }),
/* 1419 */
/***/ (function(module, exports, __webpack_require__) {
var escapeElement = __webpack_require__(1417).escapeElement;
/**
* Represents an XML text value.
* @api private
*/
function XmlText(value) {
this.value = value;
}
XmlText.prototype.toString = function () {
return escapeElement('' + this.value);
};
/**
* @api private
*/
module.exports = {
XmlText: XmlText
};
/***/ }),
/* 1420 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__v1_js__ = __webpack_require__(1423);
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "v1", function() { return __WEBPACK_IMPORTED_MODULE_0__v1_js__["a"]; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__v3_js__ = __webpack_require__(1424);
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "v3", function() { return __WEBPACK_IMPORTED_MODULE_1__v3_js__["a"]; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__v4_js__ = __webpack_require__(1425);
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "v4", function() { return __WEBPACK_IMPORTED_MODULE_2__v4_js__["a"]; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__v5_js__ = __webpack_require__(1426);
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "v5", function() { return __WEBPACK_IMPORTED_MODULE_3__v5_js__["a"]; });
/***/ }),
/* 1421 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/*
* Browser-compatible JavaScript MD5
*
* Modification of JavaScript MD5
* https://github.com/blueimp/JavaScript-MD5
*
* Copyright 2011, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* https://opensource.org/licenses/MIT
*
* Based on
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for more info.
*/
function md5(bytes) {
if (typeof bytes == 'string') {
var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
bytes = new Array(msg.length);
for (var i = 0; i < msg.length; i++) {
bytes[i] = msg.charCodeAt(i);
}
}
return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));
}
/*
* Convert an array of little-endian words to an array of bytes
*/
function md5ToHexEncodedArray(input) {
var i;
var x;
var output = [];
var length32 = input.length * 32;
var hexTab = '0123456789abcdef';
var hex;
for (i = 0; i < length32; i += 8) {
x = input[i >> 5] >>> i % 32 & 0xff;
hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);
output.push(hex);
}
return output;
}
/*
* Calculate the MD5 of an array of little-endian words, and a bit length.
*/
function wordsToMd5(x, len) {
/* append padding */
x[len >> 5] |= 0x80 << len % 32;
x[(len + 64 >>> 9 << 4) + 14] = len;
var i;
var olda;
var oldb;
var oldc;
var oldd;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for (i = 0; i < x.length; i += 16) {
olda = a;
oldb = b;
oldc = c;
oldd = d;
a = md5ff(a, b, c, d, x[i], 7, -680876936);
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
b = md5gg(b, c, d, a, x[i], 20, -373897302);
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
d = md5hh(d, a, b, c, x[i], 11, -358537222);
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
a = md5ii(a, b, c, d, x[i], 6, -198630844);
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
a = safeAdd(a, olda);
b = safeAdd(b, oldb);
c = safeAdd(c, oldc);
d = safeAdd(d, oldd);
}
return [a, b, c, d];
}
/*
* Convert an array bytes to an array of little-endian words
* Characters >255 have their high-byte silently ignored.
*/
function bytesToWords(input) {
var i;
var output = [];
output[(input.length >> 2) - 1] = undefined;
for (i = 0; i < output.length; i += 1) {
output[i] = 0;
}
var length8 = input.length * 8;
for (i = 0; i < length8; i += 8) {
output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;
}
return output;
}
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safeAdd(x, y) {
var lsw = (x & 0xffff) + (y & 0xffff);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return msw << 16 | lsw & 0xffff;
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function bitRotateLeft(num, cnt) {
return num << cnt | num >>> 32 - cnt;
}
/*
* These functions implement the four basic operations the algorithm uses.
*/
function md5cmn(q, a, b, x, s, t) {
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
}
function md5ff(a, b, c, d, x, s, t) {
return md5cmn(b & c | ~b & d, a, b, x, s, t);
}
function md5gg(a, b, c, d, x, s, t) {
return md5cmn(b & d | c & ~d, a, b, x, s, t);
}
function md5hh(a, b, c, d, x, s, t) {
return md5cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5ii(a, b, c, d, x, s, t) {
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
}
/* harmony default export */ __webpack_exports__["a"] = (md5);
/***/ }),
/* 1422 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// Adapted from Chris Veness' SHA1 code at
// http://www.movable-type.co.uk/scripts/sha1.html
function f(s, x, y, z) {
switch (s) {
case 0:
return x & y ^ ~x & z;
case 1:
return x ^ y ^ z;
case 2:
return x & y ^ x & z ^ y & z;
case 3:
return x ^ y ^ z;
}
}
function ROTL(x, n) {
return x << n | x >>> 32 - n;
}
function sha1(bytes) {
var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];
if (typeof bytes == 'string') {
var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
bytes = new Array(msg.length);
for (var i = 0; i < msg.length; i++) {
bytes[i] = msg.charCodeAt(i);
}
}
bytes.push(0x80);
var l = bytes.length / 4 + 2;
var N = Math.ceil(l / 16);
var M = new Array(N);
for (var i = 0; i < N; i++) {
M[i] = new Array(16);
for (var j = 0; j < 16; j++) {
M[i][j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];
}
}
M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);
M[N - 1][14] = Math.floor(M[N - 1][14]);
M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;
for (var i = 0; i < N; i++) {
var W = new Array(80);
for (var t = 0; t < 16; t++) {
W[t] = M[i][t];
}
for (var t = 16; t < 80; t++) {
W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);
}
var a = H[0];
var b = H[1];
var c = H[2];
var d = H[3];
var e = H[4];
for (var t = 0; t < 80; t++) {
var s = Math.floor(t / 20);
var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;
e = d;
d = c;
c = ROTL(b, 30) >>> 0;
b = a;
a = T;
}
H[0] = H[0] + a >>> 0;
H[1] = H[1] + b >>> 0;
H[2] = H[2] + c >>> 0;
H[3] = H[3] + d >>> 0;
H[4] = H[4] + e >>> 0;
}
return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];
}
/* harmony default export */ __webpack_exports__["a"] = (sha1);
/***/ }),
/* 1423 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rng_js__ = __webpack_require__(438);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__bytesToUuid_js__ = __webpack_require__(282);
// **`v1()` - Generate time-based UUID**
//
// Inspired by https://github.com/LiosK/UUID.js
// and http://docs.python.org/library/uuid.html
var _nodeId;
var _clockseq; // Previous uuid creation time
var _lastMSecs = 0;
var _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details
function v1(options, buf, offset) {
var i = buf && offset || 0;
var b = buf || [];
options = options || {};
var node = options.node || _nodeId;
var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not
// specified. We do this lazily to minimize issues related to insufficient
// system entropy. See #189
if (node == null || clockseq == null) {
var seedBytes = options.random || (options.rng || __WEBPACK_IMPORTED_MODULE_0__rng_js__["a" /* default */])();
if (node == null) {
// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
}
if (clockseq == null) {
// Per 4.2.2, randomize (14 bit) clockseq
clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
}
} // UUID timestamps are 100 nano-second units since the Gregorian epoch,
// (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
// time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
// (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock
// cycle to simulate higher resolution clock
var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)
var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression
if (dt < 0 && options.clockseq === undefined) {
clockseq = clockseq + 1 & 0x3fff;
} // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
// time interval
if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
nsecs = 0;
} // Per 4.2.1.2 Throw error if too many uuids are requested
if (nsecs >= 10000) {
throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
}
_lastMSecs = msecs;
_lastNSecs = nsecs;
_clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
msecs += 12219292800000; // `time_low`
var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
b[i++] = tl >>> 24 & 0xff;
b[i++] = tl >>> 16 & 0xff;
b[i++] = tl >>> 8 & 0xff;
b[i++] = tl & 0xff; // `time_mid`
var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;
b[i++] = tmh >>> 8 & 0xff;
b[i++] = tmh & 0xff; // `time_high_and_version`
b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`
b[i++] = clockseq & 0xff; // `node`
for (var n = 0; n < 6; ++n) {
b[i + n] = node[n];
}
return buf ? buf : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__bytesToUuid_js__["a" /* default */])(b);
}
/* harmony default export */ __webpack_exports__["a"] = (v1);
/***/ }),
/* 1424 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__v35_js__ = __webpack_require__(439);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__md5_js__ = __webpack_require__(1421);
var v3 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__v35_js__["a" /* default */])('v3', 0x30, __WEBPACK_IMPORTED_MODULE_1__md5_js__["a" /* default */]);
/* harmony default export */ __webpack_exports__["a"] = (v3);
/***/ }),
/* 1425 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rng_js__ = __webpack_require__(438);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__bytesToUuid_js__ = __webpack_require__(282);
function v4(options, buf, offset) {
var i = buf && offset || 0;
if (typeof options == 'string') {
buf = options === 'binary' ? new Array(16) : null;
options = null;
}
options = options || {};
var rnds = options.random || (options.rng || __WEBPACK_IMPORTED_MODULE_0__rng_js__["a" /* default */])(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
rnds[6] = rnds[6] & 0x0f | 0x40;
rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
if (buf) {
for (var ii = 0; ii < 16; ++ii) {
buf[i + ii] = rnds[ii];
}
}
return buf || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__bytesToUuid_js__["a" /* default */])(rnds);
}
/* harmony default export */ __webpack_exports__["a"] = (v4);
/***/ }),
/* 1426 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__v35_js__ = __webpack_require__(439);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__sha1_js__ = __webpack_require__(1422);
var v5 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__v35_js__["a" /* default */])('v5', 0x50, __WEBPACK_IMPORTED_MODULE_1__sha1_js__["a" /* default */]);
/* harmony default export */ __webpack_exports__["a"] = (v5);
/***/ }),
/* 1427 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var LRU_1 = __webpack_require__(1428);
var CACHE_SIZE = 1000;
/**
* Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache]
*/
var EndpointCache = /** @class */ (function () {
function EndpointCache(maxSize) {
if (maxSize === void 0) { maxSize = CACHE_SIZE; }
this.maxSize = maxSize;
this.cache = new LRU_1.LRUCache(maxSize);
}
;
Object.defineProperty(EndpointCache.prototype, "size", {
get: function () {
return this.cache.length;
},
enumerable: true,
configurable: true
});
EndpointCache.prototype.put = function (key, value) {
var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;
var endpointRecord = this.populateValue(value);
this.cache.put(keyString, endpointRecord);
};
EndpointCache.prototype.get = function (key) {
var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;
var now = Date.now();
var records = this.cache.get(keyString);
if (records) {
for (var i = records.length-1; i >= 0; i--) {
var record = records[i];
if (record.Expire < now) {
records.splice(i, 1);
}
}
if (records.length === 0) {
this.cache.remove(keyString);
return undefined;
}
}
return records;
};
EndpointCache.getKeyString = function (key) {
var identifiers = [];
var identifierNames = Object.keys(key).sort();
for (var i = 0; i < identifierNames.length; i++) {
var identifierName = identifierNames[i];
if (key[identifierName] === undefined)
continue;
identifiers.push(key[identifierName]);
}
return identifiers.join(' ');
};
EndpointCache.prototype.populateValue = function (endpoints) {
var now = Date.now();
return endpoints.map(function (endpoint) { return ({
Address: endpoint.Address || '',
Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000
}); });
};
EndpointCache.prototype.empty = function () {
this.cache.empty();
};
EndpointCache.prototype.remove = function (key) {
var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;
this.cache.remove(keyString);
};
return EndpointCache;
}());
exports.EndpointCache = EndpointCache;
/***/ }),
/* 1428 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var LinkedListNode = /** @class */ (function () {
function LinkedListNode(key, value) {
this.key = key;
this.value = value;
}
return LinkedListNode;
}());
var LRUCache = /** @class */ (function () {
function LRUCache(size) {
this.nodeMap = {};
this.size = 0;
if (typeof size !== 'number' || size < 1) {
throw new Error('Cache size can only be positive number');
}
this.sizeLimit = size;
}
Object.defineProperty(LRUCache.prototype, "length", {
get: function () {
return this.size;
},
enumerable: true,
configurable: true
});
LRUCache.prototype.prependToList = function (node) {
if (!this.headerNode) {
this.tailNode = node;
}
else {
this.headerNode.prev = node;
node.next = this.headerNode;
}
this.headerNode = node;
this.size++;
};
LRUCache.prototype.removeFromTail = function () {
if (!this.tailNode) {
return undefined;
}
var node = this.tailNode;
var prevNode = node.prev;
if (prevNode) {
prevNode.next = undefined;
}
node.prev = undefined;
this.tailNode = prevNode;
this.size--;
return node;
};
LRUCache.prototype.detachFromList = function (node) {
if (this.headerNode === node) {
this.headerNode = node.next;
}
if (this.tailNode === node) {
this.tailNode = node.prev;
}
if (node.prev) {
node.prev.next = node.next;
}
if (node.next) {
node.next.prev = node.prev;
}
node.next = undefined;
node.prev = undefined;
this.size--;
};
LRUCache.prototype.get = function (key) {
if (this.nodeMap[key]) {
var node = this.nodeMap[key];
this.detachFromList(node);
this.prependToList(node);
return node.value;
}
};
LRUCache.prototype.remove = function (key) {
if (this.nodeMap[key]) {
var node = this.nodeMap[key];
this.detachFromList(node);
delete this.nodeMap[key];
}
};
LRUCache.prototype.put = function (key, value) {
if (this.nodeMap[key]) {
this.remove(key);
}
else if (this.size === this.sizeLimit) {
var tailNode = this.removeFromTail();
var key_1 = tailNode.key;
delete this.nodeMap[key_1];
}
var newNode = new LinkedListNode(key, value);
this.nodeMap[key] = newNode;
this.prependToList(newNode);
};
LRUCache.prototype.empty = function () {
var keys = Object.keys(this.nodeMap);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
var node = this.nodeMap[key];
this.detachFromList(node);
delete this.nodeMap[key];
}
};
return LRUCache;
}());
exports.LRUCache = LRUCache;
/***/ }),
/* 1429 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__ = __webpack_require__(441);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
/**
* XBlock represents the grid cell (div). Do not apply custom styling and margins on this block.
*/
var XBlock = function (_React$Component) {
_inherits(XBlock, _React$Component);
function XBlock() {
var _ref;
var _temp, _this, _ret;
_classCallCheck(this, XBlock);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = XBlock.__proto__ || Object.getPrototypeOf(XBlock)).call.apply(_ref, [this].concat(args))), _this), _this.divElement = null, _this.placed = false, _temp), _possibleConstructorReturn(_this, _ret);
}
// static propTypes = {
// width: React.PropTypes.number
// };
/**
* Reference to the div element.
* @type {HTMLElement|null}
*/
/**
* Identifies whether this .xblock is initialized.
* @type {boolean}
*/
_createClass(XBlock, [{
key: "componentDidUpdate",
value: function componentDidUpdate() {
var _this2 = this;
if (this.placed || !this.props.parent || this.props["data-xkey"]) return;
this.placed = true;
var parent = this.props.parent;
requestAnimationFrame(function () {
if (!_this2.divElement) return;
var images = Array.prototype.slice.call(_this2.divElement.querySelectorAll("img")),
handleImages = images.length > 0 && parent.props.updateOnImagesLoad;
if (handleImages) images.forEach(function (img) {
return !img.complete && img.addEventListener("load", parent.update);
});
if (_this2.props.height !== _this2.divElement.clientHeight) parent.update(); // useful when f.e. image was loaded in between renders
});
}
}, {
key: "render",
value: function render() {
var _this3 = this;
var _props = this.props,
width = _props.width,
height = _props.height,
measured = _props.measured,
parent = _props.parent,
style = _props.style,
rest = _objectWithoutProperties(_props, ["width", "height", "measured", "parent", "style"]),
maxColumns = this.props.parent.columns,
columns = Math.min(width || 1, maxColumns, this.props.parent.props.maxColumns);
style.width = Math.floor(columns * this.props.parent.containerWidth / maxColumns);
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
"div",
_extends({ "data-width": columns
}, rest, {
style: _extends({}, style, XBlock.defaultStyle),
className: measured ? "xblock" : __WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */] ? "xblock xblock-static" : "",
ref: function ref(x) {
return _this3.divElement = x;
} }),
this.props.children
);
}
}]);
return XBlock;
}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
XBlock.defaultProps = {
width: 1,
measured: false
};
XBlock.defaultStyle = {
position: __WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */] ? undefined : "absolute",
boxSizing: "border-box"
};
/* harmony default export */ __webpack_exports__["a"] = (XBlock);
/***/ }),
/* 1430 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__ = __webpack_require__(441);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var scrollbarSize = 0,
scrollbarComputed = false;
var DEFAULT_SMART_UPDATE_GAP = 100;
var DEFAULT_SERVER_COLUMNS = 3;
var setScrollbarSize = function setScrollbarSize() {
if (__WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */]) return;
if (!document.body) {
document.addEventListener("DOMContentLoaded", setScrollbarSize);
return;
}
var el = document.createElement("div");
el.style.overflow = "scroll";
el.style.height = el.style.width = "200px";
el.style.visibility = "hidden";
el.style.padding = el.style.margin = el.style.border = 0;
document.body.appendChild(el);
scrollbarSize = el.offsetWidth - el.clientWidth || 0;
scrollbarComputed = true;
document.body.removeChild(el);
};
/**
* @npm react-xmasonry
*/
var XMasonry = function (_React$Component) {
_inherits(XMasonry, _React$Component);
_createClass(XMasonry, [{
key: "getBestFitColumn",
// static propTypes = {
// center: React.PropTypes.bool,
// maxColumns: React.PropTypes.number,
// responsive: React.PropTypes.bool,
// smartUpdate: React.PropTypes.bool
// targetBlockWidth: React.PropTypes.number,
// updateOnFontLoad: React.PropTypes.bool,
// updateOnImagesLoad: React.PropTypes.bool
// };
value: function getBestFitColumn(heights) {
var width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
var actualCols = Math.min(heights.length - width + 1, this.props.maxColumns - width + 1);
var minIndex = 0,
minHeight = Infinity;
for (var i = 0; i < actualCols; ++i) {
var currentMinHeight = Math.max.apply(null, heights.slice(i, i + width));
if (currentMinHeight < minHeight) {
minHeight = currentMinHeight;
minIndex = i;
}
}
return { col: minIndex, height: minHeight };
}
// These properties are just a sync representation of some state properties.
/**
* XMasonry layout container reference.
* @type {HTMLElement}
* @readonly
*/
/**
* De-bouncing properties used to prevent size recalculations being called very often.
* @type {function}
* @private
*/
/**
* This property assigns the fixed height to XMasonry container. The purpose of this is to
* prevent masonry layout from updating infinitely. For example, when the elements get measured
* and placed first time, the scroll bar may appear. Because of the width change XMasonry will
* go to recalculate sizes once again, appearing at the initial state again because elements to
* calculate got detached from the DOM. This creates an infinite loop. The solution for this is
* to fix the container's previously calculated height until all the elements will be measured.
* @type {number}
* @private
*/
/**
* The width of XMasonry block in pixels. Is assigned dynamically, and must be in sync with the
* state property.
* @type {number}
* @readonly
*/
/**
* Update XMasonry layout. It is safe to trigger this function multiple times, size updates are
* optimized.
*/
/**
* Timeout identifier determining the next smart update run time.
* @type {number}
*/
}]);
function XMasonry(props) {
_classCallCheck(this, XMasonry);
var _this = _possibleConstructorReturn(this, (XMasonry.__proto__ || Object.getPrototypeOf(XMasonry)).call(this, props));
_this.state = {
blocks: {},
containerHeight: 0,
columns: 1,
containerWidth: 0
};
_this.columns = _this.state.columns;
_this.blocks = _this.state.blocks;
_this.container = null;
_this.debouncedResize = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["b" /* debounce */])(_this.updateContainerWidth.bind(_this));
_this.fixedHeight = 0;
_this.containerWidth = _this.state.containerWidth;
_this.update = _this.updateInternal.bind(_this);
_this.smartUpdate = 0;
if (!scrollbarComputed) setScrollbarSize();
if (_this.props.responsive && !__WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */]) {
window.addEventListener("resize", _this.debouncedResize);
}
if (!__WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */] && _this.props.updateOnFontLoad && document.fonts && document.fonts.addEventListener) {
document.fonts.addEventListener("loadingdone", _this.update);
}
return _this;
}
/**
* @return {boolean} - Whether the components were updated.
*/
_createClass(XMasonry, [{
key: "updateInternal",
value: function updateInternal() {
if (!this.updateContainerWidth()) return this.measureChildren();
return false;
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
this.updateInternal();
}
}, {
key: "componentWillMount",
value: function componentWillMount() {
this.updateContainerWidth();
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
if (!__WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */]) {
window.removeEventListener("resize", this.debouncedResize);
}
if (!__WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */] && this.props.updateOnFontLoad && document.fonts && document.fonts.addEventListener) {
document.fonts.removeEventListener("loadingdone", this.update);
}
if (this.smartUpdate) clearTimeout(this.smartUpdate);
}
}, {
key: "componentWillReceiveProps",
value: function componentWillReceiveProps(newProps) {
// Other conditions are already covered, except of removing children without adding new ones
if (__WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.count(newProps.children) < __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.count(this.props.children)) {
var newKeys = new Set(),
deleted = {};
__WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(newProps.children, function (child, i) {
return newKeys.add(child.key === null ? i : child.key);
});
__WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(this.props.children, function (child, i) {
var key = child.key === null ? i : child.key;
if (!newKeys.has(key)) deleted[key] = {};
});
this.recalculatePositions(null, deleted);
}
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate() {
if (!this.updateInternal()) return;
if (this.props.smartUpdate) this.runSmartUpdate();
}
}, {
key: "runSmartUpdate",
value: function runSmartUpdate() {
var _this2 = this;
var gap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SMART_UPDATE_GAP;
if (gap === DEFAULT_SMART_UPDATE_GAP && this.smartUpdate) {
clearInterval(this.smartUpdate);
this.smartUpdate = 0;
} else if (this.smartUpdate) return;
this.smartUpdate = setTimeout(function () {
var hidden = !__WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */] && typeof document.hidden !== "undefined" && document.hidden;
if (hidden) {
var listener = document.addEventListener("visibilitychange", function () {
if (document.hidden) return;
document.removeEventListener("visibilitychange", listener);
_this2.runSmartUpdate(gap * 2);
}, false);
}
_this2.smartUpdate = 0;
if (_this2.updateInternal()) {
// if Smart Update detects any changes
_this2.runSmartUpdate(); // re-run smart update
return;
}
if (!hidden) _this2.runSmartUpdate(gap * 2);
}, Math.min(gap, this.props.smartUpdateCeil));
}
/**
* Get number of columns by the given width in pixels.
* @param {number} width
* @returns {number}
*/
}, {
key: "getColumnsNumber",
value: function getColumnsNumber(width) {
return Math.max(1, Math.round(width / this.props.targetBlockWidth));
}
/**
* @private
* @returns {boolean} - Width updated.
*/
}, {
key: "updateContainerWidth",
value: function updateContainerWidth() {
var newWidth = __WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */] && !this.container ? this.props.width || this.props.targetBlockWidth * 999 : this.container ? this.container.clientWidth : 0;
if (newWidth === this.containerWidth || newWidth === this.containerWidth + scrollbarSize
// This condition is required to prevent XMasonry from infinitely looping in some cases
// when scrollbar appears. This works in case of dynamic content, when scrollbar appear
// causes content to change, and because this change scrollbar disappears, and so on:
// this repeats infinitely.
) {
return false;
}
this.setState({
columns: this.columns = this.getColumnsNumber(newWidth),
containerWidth: this.containerWidth = newWidth,
blocks: this.blocks = {}
});
return true;
}
/**
* Measure non-measured blocks and update measured ones.
* @private
* @returns {boolean}
*/
}, {
key: "measureChildren",
value: function measureChildren() {
if (!this.container) return false;
var blocks = {},
update = false;
for (var i = 0; i < this.container.children.length; i++) {
var child = this.container.children[i],
hasXKey = child.hasAttribute("data-xkey"),
key = child.getAttribute("data-key"),
width = +child.getAttribute("data-width");
if (!hasXKey && (this.blocks[key] || {}).height === child.clientHeight && (this.blocks[key] || {}).width === width) continue;
blocks[key] = {
height: child.clientHeight
};
if (!update) update = true;
}
if (update) this.recalculatePositions(blocks);
return update;
}
/**
* @param {object} newBlocks
* @param {object} deletedBlocks
* @private
*/
}, {
key: "recalculatePositions",
value: function recalculatePositions() {
var newBlocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
var deletedBlocks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
var blocks = void 0,
heights = [];
for (var c = 0; c < this.columns; ++c) {
heights.push(0);
}for (var key in this.blocks) {
if (this.blocks.hasOwnProperty(key) && typeof this.blocks[key] === "undefined") {
if (deletedBlocks === null) deletedBlocks = {};
deletedBlocks[key] = {};
}
}
if (deletedBlocks) {
blocks = {};
for (var _key in this.blocks) {
if (this.blocks.hasOwnProperty(_key) && !deletedBlocks.hasOwnProperty(_key)) blocks[_key] = this.blocks[_key];
}for (var _key2 in newBlocks) {
if (newBlocks.hasOwnProperty(_key2) && !deletedBlocks.hasOwnProperty(_key2)) blocks[_key2] = newBlocks[_key2];
}
} else {
blocks = _extends({}, this.blocks, newBlocks);
}
for (var i = 0; i < this.container.children.length; i++) {
var child = this.container.children[i],
_key3 = child.getAttribute("data-key");
if (!blocks.hasOwnProperty(_key3)) continue;
if (deletedBlocks && deletedBlocks.hasOwnProperty(_key3)) continue;
var blockWidth = +child.getAttribute("data-width") || 1,
_getBestFitColumn = this.getBestFitColumn(heights, blockWidth),
col = _getBestFitColumn.col,
height = _getBestFitColumn.height,
newHeight = height + blocks[_key3].height;
blocks[_key3].left = this.containerWidth * col / this.columns;
blocks[_key3].top = height;
blocks[_key3].width = Math.min(blockWidth, this.columns);
for (var _i = 0; _i < blockWidth; ++_i) {
heights[col + _i] = newHeight;
}
}
if (this.props.center && heights[heights.length - 1] === 0) {
var emptyColumns = 1;
for (; heights[heights.length - 1 - emptyColumns] === 0; ++emptyColumns) {}
var leftMargin = this.containerWidth * emptyColumns / this.columns / 2;
for (var _key4 in blocks) {
if (blocks.hasOwnProperty(_key4)) blocks[_key4].left += leftMargin;
}
}
this.setState({
blocks: this.blocks = blocks,
containerHeight: Math.max.apply(null, heights)
});
}
}, {
key: "render",
value: function render() {
var _this3 = this;
var allKeys = {};
var toMeasure = 0;
var elements = this.containerWidth === 0 ? [] : this.props.children || [];
var children = __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.map(elements, function (element, i) {
var key = element.key === null ? i : element.key;
var measured = _this3.blocks[key]; // || undefined
if (!measured) ++toMeasure;
allKeys[key] = null;
return measured ? __WEBPACK_IMPORTED_MODULE_0_react___default.a.cloneElement(element, {
"data-key": key,
"key": key,
"style": {
left: Math.floor(measured.left),
top: measured.top
},
"measured": true,
"height": measured.height,
"parent": _this3
}) : __WEBPACK_IMPORTED_MODULE_0_react___default.a.cloneElement(element, {
"data-key": key,
"data-xkey": key,
"key": key,
"style": {
visibility: __WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */] ? "visible" : "hidden"
},
"height": 0,
"parent": _this3
});
});
for (var key in this.blocks) {
// empty not used keys
if (!this.blocks.hasOwnProperty(key) || allKeys.hasOwnProperty(key)) continue;
this.blocks[key] = undefined;
}
var actualHeight = children.length - toMeasure > 0 || children.length === 0 ? this.fixedHeight = this.state.containerHeight : this.fixedHeight;
// console.log(`XMasonry debug: measured=${ children.length - toMeasure }, not=${ toMeasure
// }, W=${ this.containerWidth }, H=${ actualHeight }, fixedH=${
// !(children.length - toMeasure > 0 || children.length === 0) } blocks`,
// JSON.parse(JSON.stringify(this.blocks)), children, this.props.children);
var _props = this.props,
center = _props.center,
maxColumns = _props.maxColumns,
responsive = _props.responsive,
smartUpdate = _props.smartUpdate,
smartUpdateCeil = _props.smartUpdateCeil,
targetBlockWidth = _props.targetBlockWidth,
updateOnImagesLoad = _props.updateOnImagesLoad,
updateOnFontLoad = _props.updateOnFontLoad,
className = _props.className,
style = _props.style,
otherProps = _objectWithoutProperties(_props, ["center", "maxColumns", "responsive", "smartUpdate", "smartUpdateCeil", "targetBlockWidth", "updateOnImagesLoad", "updateOnFontLoad", "className", "style"]);
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
"div",
_extends({ className: "xmasonry" + (__WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */] ? " xmasonry-static" : "") + (className ? " " + className : ""),
style: _extends({}, XMasonry.containerStyle, {
height: __WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */] ? undefined : actualHeight
}, style),
ref: function ref(c) {
return _this3.container = c;
}
}, otherProps),
children
);
}
}]);
return XMasonry;
}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
XMasonry.defaultProps = {
center: true,
maxColumns: __WEBPACK_IMPORTED_MODULE_1__utils_index_jsx__["a" /* isServer */] ? DEFAULT_SERVER_COLUMNS : Infinity,
responsive: true,
smartUpdate: true,
smartUpdateCeil: Infinity,
targetBlockWidth: 300,
updateOnFontLoad: true,
updateOnImagesLoad: true
};
XMasonry.containerStyle = {
position: "relative"
};
/* harmony default export */ __webpack_exports__["a"] = (XMasonry);
/***/ }),
/* 1431 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export AlertMessage */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_debounce__ = __webpack_require__(38);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_debounce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_debounce__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_md5__ = __webpack_require__(2790);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_md5___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_md5__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__store_ui_actions__ = __webpack_require__(18);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__store_global_data_selectors__ = __webpack_require__(27);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__store_page_data_selectors__ = __webpack_require__(16);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__core_dateUtils__ = __webpack_require__(41);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__data_dataUtils__ = __webpack_require__(49);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__AlertMessage_css__ = __webpack_require__(2498);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__AlertMessage_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15__AlertMessage_css__);
var _this = this;
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var ALERT_TYPE_GLOBAL = 'Global';
var ALERT_TYPE_VENUE = 'Venue';
var ALERT_TYPE_EDP = 'EDP';
var ALERT_TYPE_VLP = 'VLP';
var COLLAPSED_TEXT = 'Show More';
var EXPANDED_TEXT = 'Show Less';
var AlertMessage = function AlertMessage(_ref) {
var addExternalSpace = _ref.addExternalSpace,
edpAlert = _ref.edpAlert,
eventName = _ref.eventName,
globalAlert = _ref.globalAlert,
removeExternalSpace = _ref.removeExternalSpace,
venueAlert = _ref.venueAlert,
venueName = _ref.venueName,
vlpAlert = _ref.vlpAlert;
if (!__WEBPACK_IMPORTED_MODULE_12__core_utils__["c" /* isBrowser */]) return null; /* Prevents Loadable Components throwing invalid hook call on server */
var _useState = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])({}),
_useState2 = _slicedToArray(_useState, 2),
content = _useState2[0],
setContent = _useState2[1];
var _useState3 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(0),
_useState4 = _slicedToArray(_useState3, 2),
height = _useState4[0],
setHeight = _useState4[1];
var _useState5 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(false),
_useState6 = _slicedToArray(_useState5, 2),
isExpandedContentOpen = _useState6[0],
setIsExpandedContentOpen = _useState6[1];
var _useState7 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(false),
_useState8 = _slicedToArray(_useState7, 2),
isVisible = _useState8[0],
setIsVisible = _useState8[1];
var _useState9 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(0),
_useState10 = _slicedToArray(_useState9, 2),
transform = _useState10[0],
setTransform = _useState10[1];
var _useState11 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(null),
_useState12 = _slicedToArray(_useState11, 2),
type = _useState12[0],
setType = _useState12[1];
var backgroundColor = __WEBPACK_IMPORTED_MODULE_3_idx___default()(content, function (_) {
return _.background_color.color;
});
var color = __WEBPACK_IMPORTED_MODULE_3_idx___default()(content, function (_) {
return _.text_color.color;
});
var expandedContent = __WEBPACK_IMPORTED_MODULE_3_idx___default()(content, function (_) {
return _.expanded_content;
});
var inlineStyles = backgroundColor || color ? {
backgroundColor: backgroundColor,
color: color
} : null;
var rootClasses = __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_15__AlertMessage_css___default.a.root, _defineProperty({}, __WEBPACK_IMPORTED_MODULE_15__AlertMessage_css___default.a.rootClosed, !isVisible));
var copyClasses = __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_15__AlertMessage_css___default.a.copy, _defineProperty({}, __WEBPACK_IMPORTED_MODULE_15__AlertMessage_css___default.a.link, !!color));
var expandedContentJsx = _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_15__AlertMessage_css___default.a.expandedContentWrapper
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()('container', copyClasses),
dangerouslySetInnerHTML: { __html: expandedContent }
}));
var message = __WEBPACK_IMPORTED_MODULE_3_idx___default()(content, function (_) {
return _.message;
});
var alertRef = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useRef"])(null);
var toggleExpandedContent = function toggleExpandedContent() {
return setIsExpandedContentOpen(!isExpandedContentOpen);
};
var checkEdpCookie = function checkEdpCookie() {
var message = __WEBPACK_IMPORTED_MODULE_3_idx___default()(edpAlert, function (_) {
return _.message;
});
if (!message) return false;
var cookieTest = new RegExp('is' + eventName + 'EdpAlertAccepted=' + __WEBPACK_IMPORTED_MODULE_6_md5___default()(message) + '(;|$)');
return cookieTest.test(document.cookie);
};
var checkVlpCookie = function checkVlpCookie() {
var message = __WEBPACK_IMPORTED_MODULE_3_idx___default()(vlpAlert, function (_) {
return _.message;
});
if (!message) return false;
var cookieTest = new RegExp('is' + venueName + 'VlpAlertAccepted=' + __WEBPACK_IMPORTED_MODULE_6_md5___default()(message) + '(;|$)');
return cookieTest.test(document.cookie);
};
var checkVenueCookie = function checkVenueCookie() {
var message = __WEBPACK_IMPORTED_MODULE_3_idx___default()(venueAlert, function (_) {
return _.message;
});
if (!message) return false;
var cookieTest = new RegExp('is' + venueName + 'AlertAccepted=' + __WEBPACK_IMPORTED_MODULE_6_md5___default()(message) + '(;|$)');
return cookieTest.test(document.cookie);
};
var checkGlobalCookie = function checkGlobalCookie() {
var message = __WEBPACK_IMPORTED_MODULE_3_idx___default()(globalAlert, function (_) {
return _.message;
});
if (!message) return false;
var cookieTest = new RegExp('isGlobalAlertAccepted=' + __WEBPACK_IMPORTED_MODULE_6_md5___default()(message) + '(;|$)');
return cookieTest.test(document.cookie);
};
var showAlert = function showAlert() {
var hasEdpCookie = checkEdpCookie();
var hasGlobalCookie = checkGlobalCookie();
var hasVenueCookie = checkVenueCookie();
var hasVlpCookie = checkVlpCookie();
var edpAlertMessage = __WEBPACK_IMPORTED_MODULE_3_idx___default()(edpAlert, function (_) {
return _.message;
});
var globalAlertMessage = __WEBPACK_IMPORTED_MODULE_3_idx___default()(globalAlert, function (_) {
return _.message;
});
var venueAlertMessage = __WEBPACK_IMPORTED_MODULE_3_idx___default()(venueAlert, function (_) {
return _.message;
});
var vlpAlertMessage = __WEBPACK_IMPORTED_MODULE_3_idx___default()(vlpAlert, function (_) {
return _.message;
});
var content = {};
var isVisible = false;
var type = null;
if (!hasEdpCookie && !!edpAlertMessage) {
content = edpAlert;
isVisible = true;
type = ALERT_TYPE_EDP;
} else if (!hasVlpCookie && !!vlpAlertMessage) {
content = vlpAlert;
isVisible = true;
type = ALERT_TYPE_VLP;
} else if (!hasVenueCookie && !!venueAlertMessage) {
content = venueAlert;
isVisible = true;
type = ALERT_TYPE_VENUE;
} else if (!hasGlobalCookie && !!globalAlertMessage) {
content = globalAlert;
isVisible = true;
type = ALERT_TYPE_GLOBAL;
}
var _content = content,
alertEnd = _content.alert_end,
alertStart = _content.alert_start;
if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__core_dateUtils__["e" /* isFutureDate */])(alertStart) || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__core_dateUtils__["g" /* isPastDate */])(alertEnd)) isVisible = false;
setContent(content);
setIsVisible(isVisible);
setType(type);
};
var setCookie = function setCookie(type) {
var target = void 0;
switch (type) {
case ALERT_TYPE_GLOBAL:
target = type;
break;
case ALERT_TYPE_EDP:
target = eventName + 'Edp';
break;
case ALERT_TYPE_VLP:
target = venueName + 'Vlp';
break;
default:
target = venueName;
break;
}
document.cookie = 'is' + target + 'AlertAccepted=' + __WEBPACK_IMPORTED_MODULE_6_md5___default()(message) + '; max-age=86400';
};
var closeAlert = function closeAlert() {
setCookie(type);
setContent({});
setIsVisible(false);
setTransform(height);
setType(null);
};
var onHeightChange = function onHeightChange(difference) {
if (isVisible) addExternalSpace(difference || height);else removeExternalSpace(difference || height);
};
var getHeight = function getHeight() {
var height = __WEBPACK_IMPORTED_MODULE_3_idx___default()(alertRef, function (_) {
return _.current.offsetHeight;
});
setHeight(height);
};
var onResize = __WEBPACK_IMPORTED_MODULE_5_debounce___default()(function () {
var current = alertRef.current;
if (!current) return;
var currentHeight = current.offsetHeight;
if (height !== currentHeight) {
var difference = currentHeight - height;
onHeightChange(difference);
setHeight(currentHeight);
}
}, 200);
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
return showAlert();
}, []);
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
return onHeightChange();
}, [height, transform]);
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
if (alertRef.current) {
getHeight();
window.addEventListener('resize', onResize);
}
return function () {
return window.removeEventListener('resize', onResize);
};
}, [content, isVisible, type]);
if (!isVisible && !message) return null;
var analyticsData = {
event: 'click_content',
link_module: 'promo-banner',
click_tracking: 'promo-banner:close-banner',
link_location: 'header-promo-banner',
link_type: 'internal'
};
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
'div',
{
style: inlineStyles,
className: rootClasses,
ref: function ref(alert) {
_this.alert = alert;
},
'data-selector': 'alert-message__container'
},
_jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()('container', __WEBPACK_IMPORTED_MODULE_15__AlertMessage_css___default.a.container)
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_8__elements__["k" /* Icon */], {
color: color,
icon: 'warning',
size: 28,
theme: 'white'
}), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_15__AlertMessage_css___default.a.content
}, void 0, _jsx('div', {
className: copyClasses,
dangerouslySetInnerHTML: { __html: message }
}), expandedContent && _jsx(__WEBPACK_IMPORTED_MODULE_8__elements__["d" /* Button */], {
className: __WEBPACK_IMPORTED_MODULE_15__AlertMessage_css___default.a.expandableButton,
onClick: toggleExpandedContent
}, void 0, isExpandedContentOpen ? EXPANDED_TEXT : COLLAPSED_TEXT))),
_jsx(__WEBPACK_IMPORTED_MODULE_8__elements__["d" /* Button */], {
singleEventAnalytics: analyticsData,
className: __WEBPACK_IMPORTED_MODULE_15__AlertMessage_css___default.a.closeButton,
onClick: closeAlert
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_8__elements__["k" /* Icon */], {
color: color,
icon: 'close-small',
size: 28,
theme: 'white'
}), ' Close'),
isExpandedContentOpen && expandedContentJsx
);
};
AlertMessage.defaultProps = {
edpAlert: {},
eventName: null,
globalAlert: {},
venueAlert: {},
venueName: null,
vlpAlert: {}
};
var mapStateToProps = function mapStateToProps(state) {
var edpAlert = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__store_page_data_selectors__["r" /* getEdpAlert */])(state);
var globalAlert = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__store_global_data_selectors__["p" /* getGlobalAlert */])(state);
var venueAlert = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__store_page_data_selectors__["s" /* getVenueAlert */])(state);
var vlpAlert = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__store_page_data_selectors__["t" /* getVlpAlert */])(state);
var template = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__store_page_data_selectors__["j" /* getTemplate */])(state);
var eventName = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__data_dataUtils__["i" /* toPascalCase */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__store_page_data_selectors__["u" /* getEventName */])(state));
var venue = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__store_page_data_selectors__["d" /* getVenue */])(state, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__store_page_data_selectors__["c" /* getPageSlug */])(state));
var venueName = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__data_dataUtils__["i" /* toPascalCase */])(__WEBPACK_IMPORTED_MODULE_3_idx___default()(venue, function (_) {
return _.name;
}));
return {
edpAlert: edpAlert,
eventName: eventName,
globalAlert: globalAlert,
template: template,
venueAlert: venueAlert,
venueName: venueName,
vlpAlert: vlpAlert
};
};
var mapDispatchToProps = {
addExternalSpace: __WEBPACK_IMPORTED_MODULE_9__store_ui_actions__["m" /* addExternalSpace */],
removeExternalSpace: __WEBPACK_IMPORTED_MODULE_9__store_ui_actions__["n" /* removeExternalSpace */]
};
/* harmony default export */ __webpack_exports__["a"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4_react_redux__["connect"])(mapStateToProps, mapDispatchToProps)(__WEBPACK_IMPORTED_MODULE_7_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_15__AlertMessage_css___default.a)(AlertMessage)));
/***/ }),
/* 1432 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export IEAlertMessage */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__core_browserDetect__ = __webpack_require__(125);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__fortawesome_react_fontawesome__ = __webpack_require__(934);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__fortawesome_free_brands_svg_icons__ = __webpack_require__(933);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css__ = __webpack_require__(2499);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css__);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var CHROME_BUTTON = 'Try Chrome';
var CHROME_URL = 'https://www.google.com/chrome/';
var EDGE_BUTTON = 'Upgrade to Edge';
var EDGE_URL = 'https://www.microsoft.com/en-us/edge';
var IE_MESSAGE = 'Your browser is out of date. Please upgrade for optimal experience.
';
var IEAlertMessage = function IEAlertMessage() {
if (!__WEBPACK_IMPORTED_MODULE_4__core_utils__["c" /* isBrowser */]) return null; /* Prevents Loadable Components throwing invalid hook call on server */
var _useState = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(false),
_useState2 = _slicedToArray(_useState, 2),
isVisible = _useState2[0],
setIsVisible = _useState2[1];
var rootClasses = __WEBPACK_IMPORTED_MODULE_1_classnames___default()(__WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.root, _defineProperty({}, __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.rootClosed, !isVisible));
var closeAlert = function closeAlert() {
return setIsVisible(false);
};
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__core_utils__["_0" /* isIE */])(__WEBPACK_IMPORTED_MODULE_5__core_browserDetect__["a" /* default */]) && setIsVisible(true);
}, []);
var analyticsData = {
event: 'click_content',
link_location: 'header-browser-banner',
link_module: 'browser-out-of-date-banner',
click_tracking: 'browser-out-of-date-banner:close-banner',
link_type: 'external'
};
var UpgradeToEdgeButton = _jsx(__WEBPACK_IMPORTED_MODULE_3__elements__["d" /* Button */], {
theme: 'secondary',
target: '_blank',
className: __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.button,
singleEventAnalytics: _extends({}, analyticsData, {
click_tracking: 'browser-out-of-date-banner:upgrade-to-edge'
}),
role: 'link',
to: EDGE_URL
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.textbox
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.icon
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_6__fortawesome_react_fontawesome__["a" /* FontAwesomeIcon */], {
icon: __WEBPACK_IMPORTED_MODULE_7__fortawesome_free_brands_svg_icons__["a" /* faEdge */],
size: '2x'
})), _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.text
}, void 0, EDGE_BUTTON)));
var TryChromeButton = _jsx(__WEBPACK_IMPORTED_MODULE_3__elements__["d" /* Button */], {
theme: 'secondary',
target: '_blank',
className: __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.button,
singleEventAnalytics: _extends({}, analyticsData, {
click_tracking: 'browser-out-of-date-banner:try-chrome'
}),
role: 'link',
to: CHROME_URL
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.textbox
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.icon
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_6__fortawesome_react_fontawesome__["a" /* FontAwesomeIcon */], {
icon: __WEBPACK_IMPORTED_MODULE_7__fortawesome_free_brands_svg_icons__["b" /* faChrome */],
size: '2x'
})), _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.text
}, void 0, CHROME_BUTTON)));
return _jsx('div', {
className: rootClasses,
'data-selector': 'alert-message__container'
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_1_classnames___default()('container', __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.container)
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_3__elements__["k" /* Icon */], {
icon: 'warning',
size: 28,
theme: 'black'
}), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.content
}, void 0, _jsx('div', {
dangerouslySetInnerHTML: { __html: IE_MESSAGE }
}), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.ctas
}, void 0, UpgradeToEdgeButton, TryChromeButton))), _jsx(__WEBPACK_IMPORTED_MODULE_3__elements__["d" /* Button */], {
singleEventAnalytics: analyticsData,
className: __WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a.closeButton,
onClick: closeAlert
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_3__elements__["k" /* Icon */], {
icon: 'close-small',
size: 28,
theme: 'black'
})));
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_8__IEAlertMessage_css___default.a)(IEAlertMessage));
/***/ }),
/* 1433 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_gtm_module__ = __webpack_require__(2867);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_gtm_module___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_gtm_module__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__core_analyticsUtils__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var App = function (_React$PureComponent) {
_inherits(App, _React$PureComponent);
function App() {
_classCallCheck(this, App);
return _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));
}
_createClass(App, [{
key: 'getChildContext',
value: function getChildContext() {
return this.props.context;
}
}, {
key: 'render',
value: function render() {
if (process.browser) {
__WEBPACK_IMPORTED_MODULE_1_react_gtm_module___default.a.initialize(__WEBPACK_IMPORTED_MODULE_2__core_analyticsUtils__["b" /* tagManagerArgs */]);
}
return this.props.children;
}
}]);
return App;
}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.PureComponent);
var ContextType = {
store: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_prop_types__["shape"])({
subscribe: __WEBPACK_IMPORTED_MODULE_3_prop_types__["func"].isRequired,
dispatch: __WEBPACK_IMPORTED_MODULE_3_prop_types__["func"].isRequired,
getState: __WEBPACK_IMPORTED_MODULE_3_prop_types__["func"].isRequired
}),
registerCriticalChunk: __WEBPACK_IMPORTED_MODULE_3_prop_types__["func"],
pageData: __WEBPACK_IMPORTED_MODULE_3_prop_types__["object"]
};
App.childContextTypes = ContextType;
/* harmony default export */ __webpack_exports__["a"] = (App);
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(26)))
/***/ }),
/* 1434 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export BodyText */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_sanitize_html_react__ = __webpack_require__(141);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_sanitize_html_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_sanitize_html_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__BodyText_css__ = __webpack_require__(2503);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__BodyText_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__BodyText_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var allowedAttributes = ['alt', 'data-*', 'href', 'src', 'target', 'class'];
var allowedTags = ['img', 'span'];
var BodyText = function BodyText(_ref) {
var headline = _ref.headline,
text = _ref.text,
disclaimer = _ref.disclaimer,
msgJumplink = _ref.msg_jumplink;
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()('container', 'small'),
'data-selector': 'body-text__container'
}, void 0, msgJumplink && _jsx('div', {
className: 'msg-jumplink',
id: msgJumplink
}), headline && _jsx('h2', {}, void 0, headline), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_6__BodyText_css___default.a.content,
dangerouslySetInnerHTML: {
__html: __WEBPACK_IMPORTED_MODULE_3_sanitize_html_react___default()(text, {
allowedAttributes: { '*': allowedAttributes },
allowedTags: __WEBPACK_IMPORTED_MODULE_3_sanitize_html_react___default.a.defaults.allowedTags.concat(allowedTags)
})
}
}), disclaimer && _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_6__BodyText_css___default.a.disclaimer,
dangerouslySetInnerHTML: { __html: __WEBPACK_IMPORTED_MODULE_3_sanitize_html_react___default()(disclaimer) }
}));
};
BodyText.defaultProps = {
headline: false,
disclaimer: false,
msg_jumplink: false,
separator: false
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_6__BodyText_css___default.a)(BodyText));
/***/ }),
/* 1435 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export DirectionsTable */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_sanitize_html_react__ = __webpack_require__(141);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_sanitize_html_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_sanitize_html_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__DirectionsTable_css__ = __webpack_require__(2509);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__DirectionsTable_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__DirectionsTable_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var allowedAttributes = ['alt', 'data-*', 'href', 'src', 'target', 'class'];
var allowedTags = ['p', 'a', 'ul', 'ol', 'li', 'span'];
/**
* Directions Table component for UniversalTemplate
*/
var DirectionsTable = function DirectionsTable(_ref) {
var headline = _ref.headline,
jumplink = _ref.msg_jumplink,
rows = _ref.rows;
return _jsx('div', {
'data-selector': 'directions-table__container'
}, void 0, jumplink && _jsx('div', {
className: 'msg-jumplink',
id: jumplink
}), _jsx('div', {
className: 'container small'
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_6__DirectionsTable_css___default.a.container
}, void 0, headline && _jsx('h2', {
className: __WEBPACK_IMPORTED_MODULE_6__DirectionsTable_css___default.a.headline
}, void 0, headline), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_6__DirectionsTable_css___default.a.content
}, void 0, rows.map(function (_ref2, index) {
var headline = _ref2.headline,
description = _ref2.description,
cta = _ref2.cta;
return _jsx('dl', {
className: __WEBPACK_IMPORTED_MODULE_6__DirectionsTable_css___default.a.row
}, index, _jsx('dt', {
className: __WEBPACK_IMPORTED_MODULE_6__DirectionsTable_css___default.a['row-title']
}, void 0, _jsx('h3', {
className: __WEBPACK_IMPORTED_MODULE_6__DirectionsTable_css___default.a['row-headline']
}, void 0, headline)), _jsx('dd', {
className: __WEBPACK_IMPORTED_MODULE_6__DirectionsTable_css___default.a['row-description']
}, void 0, _jsx('div', {
dangerouslySetInnerHTML: {
__html: __WEBPACK_IMPORTED_MODULE_2_sanitize_html_react___default()(description, {
allowedAttributes: { '*': allowedAttributes },
allowedTags: __WEBPACK_IMPORTED_MODULE_2_sanitize_html_react___default.a.defaults.allowedTags.concat(allowedTags)
})
}
}), _jsx('div', {}, void 0, cta && _jsx(__WEBPACK_IMPORTED_MODULE_5__elements__["a" /* Link */], {
cta: cta,
className: __WEBPACK_IMPORTED_MODULE_6__DirectionsTable_css___default.a.cta,
dataAnalytics: 'ut-directions-cta'
}, void 0, cta.label, ' ', _jsx(__WEBPACK_IMPORTED_MODULE_5__elements__["k" /* Icon */], {
icon: 'arrow-right',
theme: 'highlight',
size: 28
})))));
})))));
};
DirectionsTable.defaultProps = {
headline: 'headline',
msg_jumplink: false
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_6__DirectionsTable_css___default.a)(DirectionsTable));
/***/ }),
/* 1436 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export EmailCaptureForm */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__core_analyticsUtils__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__core_clientLogger__ = __webpack_require__(54);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__core_constants__ = __webpack_require__(24);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css__ = __webpack_require__(2510);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var firePageLoadEvent = __WEBPACK_IMPORTED_MODULE_4__core_analyticsUtils__["c" /* default */].firePageLoadEvent;
var EmailCaptureForm = function (_React$Component) {
_inherits(EmailCaptureForm, _React$Component);
function EmailCaptureForm(props) {
_classCallCheck(this, EmailCaptureForm);
var _this = _possibleConstructorReturn(this, (EmailCaptureForm.__proto__ || Object.getPrototypeOf(EmailCaptureForm)).call(this, props));
_this.onChangeHandler = function (e) {
return _this.setState({ email: e.target.value });
};
_this.validEmail = function () {
_this.setState({
valid: true,
errorMessage: _this.props.error_message
});
if (!__WEBPACK_IMPORTED_MODULE_6__core_constants__["B" /* EMAIL_REGEXP */].test(_this.state.email)) {
_this.setState({ valid: false });
return false;
}
return true;
};
_this.submitForm = function (e) {
e.preventDefault();
if (!_this.validEmail()) return;
_this.setState({
sending: true,
success: false
});
var data = {
email: _this.state.email
};
var s3Data = _extends({
business_unit: __WEBPACK_IMPORTED_MODULE_6__core_constants__["D" /* BUSINESS_UNIT */],
title: __WEBPACK_IMPORTED_MODULE_6__core_constants__["E" /* EMAIL_CAPTURE */]
}, data);
var dataConfig = {
shouldFirePageCall: false,
shouldFireEmail: true
};
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__core_utils__["N" /* fetchJSON */])('/forms-s3', s3Data).then(function (response) {
_this.setState({
sending: false,
success: response.success,
valid: response.success,
email: ''
});
firePageLoadEvent({
globalData: {
identity: _extends({
signedUp: 'success'
}, data)
}
}, dataConfig);
}).catch(function (error) {
__WEBPACK_IMPORTED_MODULE_5__core_clientLogger__["a" /* default */].reportError({ message: error.statusText });
_this.setState({
sending: false,
success: false,
valid: false,
errorMessage: 'There was an error processing your request.'
});
firePageLoadEvent({
globalData: {
identity: _extends({
signedUp: 'failure'
}, data)
}
}, dataConfig);
});
};
_this.state = {
email: '',
valid: true,
sending: false,
errorMessage: props.error_message
};
return _this;
}
_createClass(EmailCaptureForm, [{
key: 'render',
value: function render() {
var _cx;
var _props = this.props,
description = _props.description,
disclaimer = _props.disclaimer,
disclaimerLink = _props.disclaimer_link;
var _state = this.state,
valid = _state.valid,
sending = _state.sending,
success = _state.success,
errorMessage = _state.errorMessage;
var formClasses = __WEBPACK_IMPORTED_MODULE_1_classnames___default()(__WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a.form, (_cx = {}, _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a.success, success), _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a['has-error'], !valid), _cx));
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a.root
}, void 0, _jsx('form', {
className: formClasses
}, void 0, _jsx('p', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a.description
}, void 0, description), _jsx('p', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a['success-text']
}, void 0, 'Great! You\u2019re now on the list and will receive a confirmation email shortly.'), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a['input-wrapper']
}, void 0, _jsx('input', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a.input,
type: 'email',
placeholder: 'EMAIL ADDRESS',
value: this.state.email,
onChange: this.onChangeHandler
}), _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["d" /* Button */], {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a.submit,
theme: 'primary',
onClick: this.submitForm,
singleEventAnalytics: {
event: 'click_content',
link_module: 'global-navigation',
link_location: 'footer',
link_type: 'lead-gen',
click_tracking: 'global-navigation:sign-up'
}
}, void 0, sending ? _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a.sending
}) : _jsx('span', {}, void 0, 'Sign Up')), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a['error-message']
}, void 0, errorMessage)), _jsx('p', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a.disclaimer
}, void 0, disclaimer, '\xA0', _jsx('span', {}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["a" /* Link */], {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a['disclaimer-link'],
cta: disclaimerLink
})))));
}
}]);
return EmailCaptureForm;
}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_10__EmailCaptureForm_css___default.a)(EmailCaptureForm));
/***/ }),
/* 1437 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_fetch__ = __webpack_require__(138);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_fetch___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_fetch__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__core_analyticsUtils__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__core_clientLogger__ = __webpack_require__(54);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__core_constants__ = __webpack_require__(24);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css__ = __webpack_require__(2511);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _this = this;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var firePageLoadEvent = __WEBPACK_IMPORTED_MODULE_5__core_analyticsUtils__["c" /* default */].firePageLoadEvent;
var EmailCaptureFormstack = function EmailCaptureFormstack(_ref) {
var _cx;
var description = _ref.description,
disclaimer = _ref.disclaimer,
disclaimerLink = _ref.disclaimer_link,
endpoint = _ref.endpoint,
errorMessage = _ref.error_message,
formstackId = _ref.formstack_id,
successMessage = _ref.success_message;
var _useState = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])({}),
_useState2 = _slicedToArray(_useState, 2),
emailField = _useState2[0],
setEmailField = _useState2[1];
var _useState3 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(''),
_useState4 = _slicedToArray(_useState3, 2),
userEmail = _useState4[0],
setUserEmail = _useState4[1];
var _useState5 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(true),
_useState6 = _slicedToArray(_useState5, 2),
isValid = _useState6[0],
setIsValid = _useState6[1];
var _useState7 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(false),
_useState8 = _slicedToArray(_useState7, 2),
sending = _useState8[0],
setSending = _useState8[1];
var _useState9 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(false),
_useState10 = _slicedToArray(_useState9, 2),
success = _useState10[0],
setSuccess = _useState10[1];
var validEmail = function validEmail() {
setIsValid(true);
if (!__WEBPACK_IMPORTED_MODULE_7__core_constants__["B" /* EMAIL_REGEXP */].test(userEmail)) {
setIsValid(false);
return false;
}
return true;
};
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
var getUrl = '' + endpoint + formstackId;
if (!formstackId) {
console.warn('[ReactFormstack] You must pass a Formstack ID.');
return;
}
__WEBPACK_IMPORTED_MODULE_2_isomorphic_fetch___default()(getUrl).then(function (res) {
return res.json();
}).then(function (data) {
if (!data || !Array.isArray(data.fields)) return;
setEmailField(data.fields[0]);
}).catch(function (error) {
return __WEBPACK_IMPORTED_MODULE_6__core_clientLogger__["a" /* default */].reportError({ message: error.statusText });
});
}, [formstackId]);
var formClasses = __WEBPACK_IMPORTED_MODULE_1_classnames___default()(__WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a.form, (_cx = {}, _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a.success, success), _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a['has-error'], !isValid), _cx));
var onSubmit = function () {
var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(e) {
var data, postUrl, dataId, dataConfig;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
e.preventDefault();
if (validEmail()) {
_context.next = 3;
break;
}
return _context.abrupt('return');
case 3:
setSending(true);
setSuccess(false);
data = {};
postUrl = '' + endpoint + formstackId;
dataId = 'field_' + emailField.id;
data[dataId] = userEmail;
dataConfig = {
shouldFirePageCall: false,
shouldFireEmail: true
};
__WEBPACK_IMPORTED_MODULE_2_isomorphic_fetch___default()(postUrl, {
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json'
},
method: 'POST'
}).then(function () {
firePageLoadEvent({
globalData: {
identity: _extends({
signedUp: 'success'
}, data)
}
}, dataConfig);
setSending(false);
setSuccess(true);
setIsValid(true);
setUserEmail('');
}).catch(function (error) {
__WEBPACK_IMPORTED_MODULE_6__core_clientLogger__["a" /* default */].reportError({ message: error.statusText });
setSending(false);
setSuccess(false);
setIsValid(false);
setUserEmail('');
firePageLoadEvent({
globalData: {
identity: _extends({
signedUp: 'failure'
}, data)
}
}, dataConfig);
});
case 11:
case 'end':
return _context.stop();
}
}
}, _callee, _this);
}));
return function onSubmit(_x) {
return _ref2.apply(this, arguments);
};
}();
var onChange = function onChange(e) {
var value = e.target.value;
setUserEmail(value);
};
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a.root
}, void 0, _jsx('form', {
className: formClasses,
onSubmit: onSubmit
}, void 0, _jsx('p', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a.description
}, void 0, description), _jsx('p', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a['success-text']
}, void 0, successMessage), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a['input-wrapper']
}, void 0, _jsx('input', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a.input,
type: 'email',
placeholder: 'EMAIL ADDRESS',
value: userEmail,
onChange: onChange
}), _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["d" /* Button */], {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a.submit,
theme: 'primary',
onClick: onSubmit,
singleEventAnalytics: {
event: 'click_content',
link_module: 'global-navigation',
link_location: 'footer',
link_type: 'lead-gen',
click_tracking: 'global-navigation:sign-up'
}
}, void 0, sending ? _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a.sending
}) : _jsx('span', {}, void 0, 'Sign Up')), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a['error-message']
}, void 0, errorMessage)), _jsx('p', {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a.disclaimer
}, void 0, disclaimer, '\xA0', _jsx('span', {}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["a" /* Link */], {
className: __WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a['disclaimer-link'],
cta: disclaimerLink
})))));
};
EmailCaptureFormstack.defaultProps = {
endpoint: __WEBPACK_IMPORTED_MODULE_7__core_constants__["C" /* FORMSTACK_ENDPOINT */]
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_10__EmailCaptureFormstack_css___default.a)(EmailCaptureFormstack));
/***/ }),
/* 1438 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export Question */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_sanitize_html_react__ = __webpack_require__(141);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_sanitize_html_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_sanitize_html_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Question_css__ = __webpack_require__(2518);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Question_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__Question_css__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__core_utils__ = __webpack_require__(8);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Question = function (_React$Component) {
_inherits(Question, _React$Component);
function Question() {
var _ref;
var _temp, _this, _ret;
_classCallCheck(this, Question);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Question.__proto__ || Object.getPrototypeOf(Question)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
isClose: true
}, _this.toggleDescription = function () {
_this.setState(function (_ref2) {
var isClose = _ref2.isClose;
return {
isClose: !isClose
};
});
}, _temp), _possibleConstructorReturn(_this, _ret);
}
_createClass(Question, [{
key: 'render',
value: function render() {
var _props = this.props,
headline = _props.headline,
description = _props.description,
dataAnalytics = _props.dataAnalytics;
var isClose = this.state.isClose;
var tagClasses = {
p: __WEBPACK_IMPORTED_MODULE_2_classnames___default()('p', __WEBPACK_IMPORTED_MODULE_5__Question_css___default.a.p),
a: __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_5__Question_css___default.a.a),
ul: __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_5__Question_css___default.a.ul)
};
var questionId = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__core_utils__["q" /* idFromString */])(headline);
var answerId = questionId + '-answer';
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_5__Question_css___default.a.question, _defineProperty({}, __WEBPACK_IMPORTED_MODULE_5__Question_css___default.a.close, isClose)),
'data-selector': 'faq__question'
}, void 0, _jsx('h4', {
className: __WEBPACK_IMPORTED_MODULE_5__Question_css___default.a.headline,
id: questionId,
'aria-controls': answerId,
'aria-expanded': !isClose
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["d" /* Button */], {
className: __WEBPACK_IMPORTED_MODULE_5__Question_css___default.a.questionAction,
onClick: this.toggleDescription,
dataAnalytics: dataAnalytics
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__Question_css___default.a.questionWrapper
}, void 0, _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_5__Question_css___default.a.text
}, void 0, headline), _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_5__Question_css___default.a.icon
})))), _jsx('div', {
id: answerId,
className: __WEBPACK_IMPORTED_MODULE_5__Question_css___default.a.description,
dangerouslySetInnerHTML: {
__html: __WEBPACK_IMPORTED_MODULE_4_sanitize_html_react___default()(description, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__core_utils__["_7" /* transformTags */])(tagClasses))
},
'aria-hidden': isClose,
'aria-labelledby': questionId
}));
}
}]);
return Question;
}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_5__Question_css___default.a)(Question));
/***/ }),
/* 1439 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__store_page_data_selectors__ = __webpack_require__(16);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__elements_Chat__ = __webpack_require__(176);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__FlexibleForm_css__ = __webpack_require__(605);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__FlexibleForm_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__FlexibleForm_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var ContactInfo = function ContactInfo(_ref) {
var contact = _ref.contact,
chat = _ref.chat,
chatPlatform = _ref.chatPlatform,
email = _ref.email,
eyebrow = _ref.eyebrow;
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_1_classnames___default()('contact-info'),
'data-selector': 'contact-info__container'
}, void 0, _jsx('div', {}, void 0, _jsx('p', {
className: __WEBPACK_IMPORTED_MODULE_1_classnames___default()('eyebrow', 'info-eyebrow')
}, void 0, eyebrow), _jsx('ul', {
className: __WEBPACK_IMPORTED_MODULE_1_classnames___default()('info-list')
}, void 0, contact && _jsx('li', {}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["k" /* Icon */], {
size: 16,
icon: contact.icon,
theme: 'white'
}), _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["a" /* Link */], {
className: __WEBPACK_IMPORTED_MODULE_1_classnames___default()('info-list-action'),
theme: 'link-underline-inverted',
to: 'tel:' + contact.phone_number
}, void 0, 'Call ', contact.phone_number)), chat && _jsx('li', {}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["k" /* Icon */], {
size: 16,
icon: chat.icon,
theme: 'white'
}), chat.url ? _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["a" /* Link */], {
className: __WEBPACK_IMPORTED_MODULE_1_classnames___default()('info-list-action'),
theme: 'link-underline-inverted',
cta: chat.cta
}) : _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["d" /* Button */], {
className: __WEBPACK_IMPORTED_MODULE_1_classnames___default()('info-list-action'),
theme: 'link-underline-inverted',
onClick: function onClick(e) {
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__elements_Chat__["a" /* handleChatClick */])(e, chatPlatform);
}
}, void 0, chat.cta.label)), email && _jsx('li', {}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["k" /* Icon */], {
size: 16,
icon: email.icon,
theme: 'white'
}), _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["a" /* Link */], {
className: __WEBPACK_IMPORTED_MODULE_1_classnames___default()('info-list-action'),
theme: 'link-underline-inverted',
to: 'mailto:' + email.email
}, void 0, email.label)))));
};
ContactInfo.defaultProps = {
eyebrow: '',
contact: {
phone_number: '',
icon: ''
},
chat: {
cta: {
label: 'No Set',
url: '#',
cta_page: false
},
icon: ''
},
chatPlatform: null,
email: {
email: '@',
label: '',
icon: ''
}
};
var mapStateToProps = function mapStateToProps(state) {
return {
chatPlatform: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__store_page_data_selectors__["k" /* getChatPlatform */])(state)
};
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_9__FlexibleForm_css___default.a)(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4_react_redux__["connect"])(mapStateToProps)(ContactInfo)));
/***/ }),
/* 1440 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_moment__ = __webpack_require__(21);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_moment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_moment__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Footer_css__ = __webpack_require__(2521);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Footer_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__Footer_css__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__containers__ = __webpack_require__(208);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__core_analyticsUtils__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__public_icons_PrivacyIcon_png__ = __webpack_require__(2466);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__public_icons_PrivacyIcon_png___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12__public_icons_PrivacyIcon_png__);
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var formatAnalyticsText = __WEBPACK_IMPORTED_MODULE_11__core_analyticsUtils__["c" /* default */].formatAnalyticsText;
var phoneStyles = __WEBPACK_IMPORTED_MODULE_3_classnames___default()('btn', 'btn-link-primary-inverted', __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.phone);
var COMMON_ANALYTICS = {
event: 'click_content',
link_location: 'footer',
link_module: 'global-navigation'
};
var parsedPhone = function parsedPhone(text) {
var result = text.split(' ').reduce(function (acc, curr, index) {
if (curr.match(__WEBPACK_IMPORTED_MODULE_10__core_utils__["_6" /* phoneRegex */])) {
return [].concat(_toConsumableArray(acc), [_jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["k" /* Icon */], {
icon: 'call',
theme: 'white',
classes: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a['phone-icon']
}, 'phone-icon-' + index), _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["v" /* Phone */], {
phone: curr,
className: phoneStyles,
analyticsData: _extends({}, COMMON_ANALYTICS, {
link_type: 'lead-gen',
click_tracking: 'global-navigation:call-us'
})
}, 'phone-' + index), ' ']);
}
return [].concat(_toConsumableArray(acc), [curr, ' ']);
}, []);
result.pop();
return result;
};
var infoSection = function infoSection(info) {
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__core_utils__["e" /* isArrayWithLength */])(info) && info.map(function (_ref, index) {
var eyebrow = _ref.eyebrow,
infoText = _ref.information_text;
return _jsx('dl', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.details
}, index, _jsx('dt', {
className: 'eyebrow'
}, void 0, eyebrow), _jsx('dd', {}, void 0, parsedPhone(infoText)));
});
};
var navigationLinks = function navigationLinks(links, headline) {
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__core_utils__["e" /* isArrayWithLength */])(links) && links.map(function (_ref2, index) {
var cta = _ref2.cta;
return _jsx('li', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a['list-item']
}, index, _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["a" /* Link */], {
navType: __WEBPACK_IMPORTED_MODULE_11__core_analyticsUtils__["d" /* NAV_TYPES */].footerNav,
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.cta,
cta: cta,
theme: 'link-primary-inverted',
analyticsData: _extends({}, COMMON_ANALYTICS, {
link_type: 'nav',
click_tracking: 'global-navigation:' + formatAnalyticsText(cta.label, '-')
})
}));
});
};
var navigation = function navigation(links) {
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__core_utils__["e" /* isArrayWithLength */])(links) && links.map(function (_ref3, index) {
var headline = _ref3.headline,
linkItems = _ref3.link_items;
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.item
}, index, _jsx('h3', {
className: 'eyebrow'
}, void 0, headline), _jsx('ul', {}, void 0, navigationLinks(linkItems, headline)));
});
};
var legalSection = function legalSection(bottomBand) {
if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__core_utils__["e" /* isArrayWithLength */])(bottomBand)) return null;
var _bottomBand = _slicedToArray(bottomBand, 1),
_bottomBand$ = _bottomBand[0],
bottomBandItem = _bottomBand$.bottom_band_item,
copyrightLabel = _bottomBand$.copyright_label,
Eyebrow = _bottomBand$.sponsor_eyebrow,
sponsorLogo = _bottomBand$.sponsor_logo;
var logo = sponsorLogo && sponsorLogo[0];
return _jsx('article', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.copyright
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.terms
}, void 0, _jsx('p', {
className: 'legal'
}, void 0, copyrightLabel.replace(/{year}/, __WEBPACK_IMPORTED_MODULE_5_moment___default()().format('YYYY'))), _jsx('ul', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a['copyright-wrapper']
}, void 0, bottomBandItem && bottomBandItem.map(function (_ref4) {
var cta = _ref4.cta;
return _jsx('li', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a['copyright-list']
}, cta.label, _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["a" /* Link */], {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a['copyright-link'],
cta: cta,
theme: 'link-basic',
analyticsData: _extends({}, COMMON_ANALYTICS, {
link_type: 'internal',
click_tracking: 'global-navigation:' + formatAnalyticsText(cta.label, '-')
})
}));
}), _jsx('li', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a['copyright-list']
}, void 0, _jsx('a', {
className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()(__WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a['copyright-link'], 'ot-sdk-show-settings')
}), _jsx('img', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a['privacy-icon'],
src: __WEBPACK_IMPORTED_MODULE_12__public_icons_PrivacyIcon_png___default.a,
alt: 'privacy icon'
})))), (Eyebrow || logo) && _jsx('div', {
className: 'sponsor-block'
}, void 0, Eyebrow && _jsx('p', {
className: 'sponsor-text'
}, void 0, Eyebrow), logo && (__WEBPACK_IMPORTED_MODULE_4_idx___default()(logo, function (_) {
return _.link.url;
}) || __WEBPACK_IMPORTED_MODULE_4_idx___default()(logo, function (_) {
return _.link.cta_page;
}) ? _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["a" /* Link */], {
cta: logo.link,
analyticsData: _extends({}, COMMON_ANALYTICS, {
link_type: 'exit',
click_tracking: 'global-navigation:partner-exit-link'
})
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["b" /* Picture */], {
src: logo,
wrapperClass: 'sponsor-picture'
})) : _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["b" /* Picture */], {
src: logo,
wrapperClass: 'sponsor-picture'
}))));
};
var Footer = function Footer(_ref5) {
var _ref5$footer = _ref5.footer,
links = _ref5$footer.additional_links,
companyHeader = _ref5$footer.company_header,
companyInfoSection = _ref5$footer.company_information_section,
bottomBand = _ref5$footer.bottom_band,
emailCaptureData = _ref5$footer.email_capture_data;
var _useState = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(false),
_useState2 = _slicedToArray(_useState, 2),
shouldRenderFormstack = _useState2[0],
setShouldRenderFormstack = _useState2[1];
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
var formId = __WEBPACK_IMPORTED_MODULE_4_idx___default()(emailCaptureData[0], function (_) {
return _.formstack_id;
});
setShouldRenderFormstack(formId.length > 0);
}, [emailCaptureData]);
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.root,
'data-selector': 'footer__container'
}, void 0, _jsx('section', {
className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()('container', __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.main)
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.left
}, void 0, _jsx('header', {
className: 'section-header'
}, void 0, _jsx('h3', {
className: 'h6'
}, void 0, companyHeader)), shouldRenderFormstack ? __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__containers__["e" /* EmailCaptureFormstack */], emailCaptureData[0]) : emailCaptureData && __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__containers__["f" /* EmailCaptureForm */], emailCaptureData[0]), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()(__WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.wrapper, __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.info)
}, void 0, infoSection(companyInfoSection))), _jsx('nav', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.navigation
}, void 0, navigation(links))), _jsx('section', {
className: __WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a.legal
}, void 0, _jsx('section', {
className: 'container'
}, void 0, bottomBand && legalSection(bottomBand))));
};
Footer.defaultProps = {
footer: {
company_information_section: [],
additional_links: []
}
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_6__Footer_css___default.a)(Footer));
/***/ }),
/* 1441 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export GamesList */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_debounce__ = __webpack_require__(38);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_debounce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_debounce__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__GamesList_css__ = __webpack_require__(2523);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__GamesList_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__GamesList_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var NAVIGATION_HEIGHT = 55;
var GamesList = function GamesList(_ref) {
var msgJumplink = _ref.msg_jumplink,
headline = _ref.headline,
games = _ref.games,
cta = _ref.cta;
if (!__WEBPACK_IMPORTED_MODULE_4__core_utils__["c" /* isBrowser */]) return null; /* Prevents Loadable Components throwing invalid hook call on server */
var _useState = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(0),
_useState2 = _slicedToArray(_useState, 2),
offset = _useState2[0],
setOffset = _useState2[1];
var sectionEl = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useRef"])();
var resizeHandler = function resizeHandler() {
var current = sectionEl.current;
if (current) setOffset(current.offsetTop - NAVIGATION_HEIGHT);
};
var debounceResize = __WEBPACK_IMPORTED_MODULE_2_debounce___default()(resizeHandler, 25);
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
debounceResize();
window.addEventListener('resize', debounceResize);
return function () {
window.removeEventListener('resize', debounceResize);
};
}, []);
var filteredGames = function filteredGames(games) {
return games.reduce(function (acc, _ref2, index) {
var abbreviation = _ref2.abbreviation,
logo = _ref2.logo,
event = _ref2.event;
if (!event) return acc;
var name = event.name,
timezone = event.timezone,
dateTime = event.date_time,
startTime = event.start_time;
var gameElement = _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_7__GamesList_css___default.a.gameElement
}, index, abbreviation && _jsx('p', {
className: __WEBPACK_IMPORTED_MODULE_7__GamesList_css___default.a.gameAbbrevation
}, void 0, abbreviation), logo && _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["b" /* Picture */], {
className: __WEBPACK_IMPORTED_MODULE_7__GamesList_css___default.a.gameLogo,
src: logo
}), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_7__GamesList_css___default.a.gameInfo
}, void 0, _jsx('p', {
className: __WEBPACK_IMPORTED_MODULE_7__GamesList_css___default.a.gameName
}, void 0, name), _jsx('p', {
className: __WEBPACK_IMPORTED_MODULE_7__GamesList_css___default.a.gameWhen
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["N" /* ShowDateTime */], {
src: dateTime,
startTime: startTime,
timezone: timezone
}))));
return [].concat(_toConsumableArray(acc), [gameElement]);
}, []);
};
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
'div',
{ ref: sectionEl, 'data-selector': 'games-list__container' },
_jsx('div', {
className: 'container'
}, void 0, msgJumplink && _jsx('div', {
className: 'msg-jumplink',
id: msgJumplink
}), _jsx('h2', {}, void 0, headline), _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["C" /* CollapsibleList */], {
cta: cta,
anchorOffset: offset,
dataAnalytics: 'ut-see-all-cta'
}, void 0, filteredGames(games)))
);
};
GamesList.defaultProps = {
cta: false,
msg_jumplink: false,
externalSpace: 0
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_7__GamesList_css___default.a)(GamesList));
/***/ }),
/* 1442 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export Header */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_debounce__ = __webpack_require__(38);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_debounce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_debounce__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_redux__ = __webpack_require__(60);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__core_history__ = __webpack_require__(62);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__store_global_data_selectors__ = __webpack_require__(27);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__store_global_data_actions__ = __webpack_require__(78);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__store_ui_selectors__ = __webpack_require__(19);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__store_ui_actions__ = __webpack_require__(18);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__Navigation_Navigation__ = __webpack_require__(175);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__Header_css__ = __webpack_require__(2527);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__Header_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14__Header_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
/**
* Header Component, The top element of the page.
* This is the component that sticks the main navigation
*/
var Header = function (_React$Component) {
_inherits(Header, _React$Component);
function Header(props) {
_classCallCheck(this, Header);
var _this = _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).call(this, props));
_this.handleScroll = function () {
var offsetTop = __WEBPACK_IMPORTED_MODULE_3_idx___default()(_this, function (_) {
return _.root.current.offsetTop;
});
if (_this.props.scrollBlocked || !offsetTop) return;
var goingUp = _this.currentScrollPos > window.pageYOffset;
var headerThreshold = _this.state.navHeight + offsetTop;
var goingUpHeaderThreshold = offsetTop;
if (_this.currentScrollPos !== window.pageYOffset || window.pageYOffset === 0) {
if (window.pageYOffset > headerThreshold && !_this.state.stuck) {
_this.setState({
stuck: true,
goingDown: false
});
} else if (window.pageYOffset <= goingUpHeaderThreshold && _this.state.stuck) {
_this.setState({
stuck: false
});
}
if (goingUp && !_this.state.goingUp) {
_this.setState({ goingUp: goingUp, goingDown: false });
} else if (!goingUp && _this.state.goingUp) {
_this.setState({ goingUp: goingUp, goingDown: true });
}
_this.currentScrollPos = window.pageYOffset;
}
};
_this.handleResize = function () {
/*
* The dom has a delay in updating this.header.clientHeight upon resize
*/
setTimeout(function () {
var navHeight = __WEBPACK_IMPORTED_MODULE_3_idx___default()(_this, function (_) {
return _.header.current.clientHeight;
});
if (navHeight) _this.setState({ navHeight: navHeight });
}, 300);
if (_this.props.header.isMenuOpen) {
_this.updateMenu(false);
}
};
_this.delayOpen = function () {
_this.props.delayMenuStart();
__WEBPACK_IMPORTED_MODULE_5_debounce___default()(function () {
_this.props.delayMenuEnd();
}, 250)();
};
_this.updateMenu = function (isMenuOpen) {
_this.props.toggleMenu(isMenuOpen);
};
_this.toggleMenu = function () {
_this.updateMenu(!_this.props.header.isMenuOpen);
};
_this.openMenu = function () {
_this.updateMenu(true);
document.body.classList.add('megaNavOpen');
};
_this.closeMenu = function () {
_this.updateMenu(false);
document.body.classList.remove('megaNavOpen');
};
_this.currentScrollPos = 1000;
_this.state = {
stuck: false,
goingUp: false,
goingDown: false,
navHeight: 0
};
_this.handleResizing = __WEBPACK_IMPORTED_MODULE_5_debounce___default()(_this.handleResize, 25);
_this.root = __WEBPACK_IMPORTED_MODULE_0_react___default.a.createRef();
_this.header = __WEBPACK_IMPORTED_MODULE_0_react___default.a.createRef();
return _this;
}
_createClass(Header, [{
key: 'componentDidMount',
value: function componentDidMount() {
/**
* The height is set on the method componentDidMount since it needs the browser values.
*/
var navHeight = __WEBPACK_IMPORTED_MODULE_3_idx___default()(this, function (_) {
return _.header.current.clientHeight;
});
if (navHeight) this.setState({ navHeight: navHeight });
window.addEventListener('resize', this.handleResizing);
window.addEventListener('scroll', this.handleScroll);
this.unlistenHistory = __WEBPACK_IMPORTED_MODULE_8__core_history__["a" /* default */].listen(this.handleLocationChange.bind(this));
this.props.setHeaderStuck(this.state.stuck);
}
}, {
key: 'shouldComponentUpdate',
value: function shouldComponentUpdate(nextProps) {
if (nextProps.scrollBlocked !== this.props.scrollBlocked) {
return false;
}
return true;
}
}, {
key: 'componentDidUpdate',
value: function componentDidUpdate(prevProps, prevState) {
if (this.didHeaderPositionChange(prevState)) {
var isHeaderVisible = this.state.goingUp && this.state.stuck;
this.props.setHeaderStuck(isHeaderVisible);
}
var navHeight = __WEBPACK_IMPORTED_MODULE_3_idx___default()(this, function (_) {
return _.header.current.clientHeight;
});
if (prevState.navHeight !== navHeight) {
this.setState({ navHeight: navHeight }); // eslint-disable-line react/no-did-update-set-state
}
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
window.removeEventListener('resize', this.handleResizing);
window.removeEventListener('scroll', this.handleScroll);
if (this.unlistenHistory) {
this.unlistenHistory();
}
}
}, {
key: 'UNSAFE_componentWillReceiveProps',
value: function UNSAFE_componentWillReceiveProps(nextProps) {
var _this2 = this;
if (nextProps.scrollBlocked !== this.props.scrollBlocked) {
if (nextProps.scrollBlocked) {
window.removeEventListener('scroll', this.handleScroll);
} else {
setTimeout(function () {
return window.addEventListener('scroll', _this2.handleScroll);
}, 25);
}
}
}
/**
* Determine if the visibility of the "stuck header" in the viewport changed between
* the current state, and the given previous state.
*
* @param {{ goingDown: bool, goingUp: bool, stuck: bool }} prevState
* @returns {bool} true if there was a change in visibility
*/
}, {
key: 'didHeaderPositionChange',
value: function didHeaderPositionChange(prevState) {
var wasStuck = prevState.stuck,
wasGoingUp = prevState.goingUp,
wasGoingDown = prevState.goingDown;
var _state = this.state,
stuck = _state.stuck,
goingUp = _state.goingUp,
goingDown = _state.goingDown;
return stuck !== wasStuck || goingUp !== wasGoingUp || goingDown !== wasGoingDown;
}
/**
* Checks whether the header is stuck, adding different classes to manage
* the way that the header is shown.
*
* GoingUp: Header is hidden
* GoingDown: Header is shown
*
* The header is stuck once it passes its own size.
*/
/**
* Checks the window resize, updates the menu nav (closing it)
* Additionally updates the header navigation height.
*
*/
}, {
key: 'handleLocationChange',
/**
* Reset the global nav state when the user moves to a new page.
*/
value: function handleLocationChange() {
this.setState({
goingDown: false,
goingUp: false,
stuck: false
});
this.props.setHeaderStuck(false);
}
/**
* Adds a delay of 250ms when a navigation element is opened
*/
/**
* Triggers the navigation toggle (close/open)
* @param {Boolean} isMenuOpen
*/
/**
* Fires toggle navigation update based on the current header status
*/
/**
* Forces to open the Navigation
*/
/**
* Forces to close the navigation
*/
}, {
key: 'render',
value: function render() {
var _cx;
var _props = this.props,
_props$header = _props.header,
isMenuOpen = _props$header.isMenuOpen,
delayHover = _props$header.delayHover,
navigation = _props.navigation,
secondaryNavigation = _props.secondaryNavigation;
var _state2 = this.state,
goingDown = _state2.goingDown,
goingUp = _state2.goingUp,
navHeight = _state2.navHeight,
stuck = _state2.stuck;
var rootClassName = __WEBPACK_IMPORTED_MODULE_2_classnames___default()((_cx = {
'page-header': true
}, _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_14__Header_css___default.a.root, true), _defineProperty(_cx, 'headerIsStuck', stuck), _defineProperty(_cx, 'headerGoingUp', goingUp), _defineProperty(_cx, 'headerGoingDown', goingDown), _defineProperty(_cx, 'menuOpen', isMenuOpen), _defineProperty(_cx, 'delayHover', delayHover), _cx));
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
'div',
{
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_14__Header_css___default.a.placeholder),
style: { height: navHeight },
'data-selector': 'header__container',
ref: this.root
},
__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
'div',
{ className: rootClassName, ref: this.header },
navigation && _jsx(__WEBPACK_IMPORTED_MODULE_13__Navigation_Navigation__["b" /* default */], {
primary: navigation,
secondary: secondaryNavigation,
isGlobalNavStuck: stuck
})
)
);
}
}]);
return Header;
}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
Header.defaultProps = {
header: {
isMenuOpen: false,
delayHover: false
},
scrollBlocked: false,
secondaryNavigation: null
/**
* Gets the component props from the store
*
* @param {Object} state State of the application
*/
};var mapStateToProps = function mapStateToProps(state) {
return {
header: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__store_global_data_selectors__["o" /* getSalesCenterHeader */])(state),
scrollBlocked: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__store_ui_selectors__["e" /* getScrollBlocked */])(state)
};
};
var mapDispatchToProps = function mapDispatchToProps(dispatch) {
return {
setHeaderStuck: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_redux__["bindActionCreators"])(__WEBPACK_IMPORTED_MODULE_12__store_ui_actions__["q" /* setHeaderStuck */], dispatch),
delayMenuStart: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_redux__["bindActionCreators"])(__WEBPACK_IMPORTED_MODULE_10__store_global_data_actions__["i" /* delayMenuStart */], dispatch),
delayMenuEnd: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_redux__["bindActionCreators"])(__WEBPACK_IMPORTED_MODULE_10__store_global_data_actions__["j" /* delayMenuEnd */], dispatch),
toggleMenu: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_redux__["bindActionCreators"])(__WEBPACK_IMPORTED_MODULE_10__store_global_data_actions__["k" /* toggleMenu */], dispatch)
};
};
/**
* Connects the current mapped props to the component
*/
var HeaderLinked = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6_react_redux__["connect"])(mapStateToProps, mapDispatchToProps)(Header);
/* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_14__Header_css___default.a)(HeaderLinked));
/***/ }),
/* 1443 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export HeroSeatmaps */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__HeroSeatmaps_css__ = __webpack_require__(2531);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__HeroSeatmaps_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__HeroSeatmaps_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var HeroSeatmaps = function HeroSeatmaps(_ref) {
var headline = _ref.headline;
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_3__HeroSeatmaps_css___default.a.root,
'data-selector': 'hero-seatmaps__container'
}, void 0, _jsx('div', {
className: 'container'
}, void 0, _jsx('h1', {
className: __WEBPACK_IMPORTED_MODULE_3__HeroSeatmaps_css___default.a.headline
}, void 0, headline)));
};
HeroSeatmaps.defaultProps = {
headline: null
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_3__HeroSeatmaps_css___default.a)(HeroSeatmaps));
/***/ }),
/* 1444 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export HeroUniversal */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__core_history__ = __webpack_require__(62);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css__ = __webpack_require__(2533);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/**
* HeroSalesCenter Component for UniversalTemplate
*/
var HeroUniversal = function HeroUniversal(_ref) {
var backCtaLabel = _ref.back_cta_label,
headline = _ref.headline,
image = _ref.image;
var label = __WEBPACK_IMPORTED_MODULE_4_idx___default()(backCtaLabel, function (_) {
return _.label;
});
var showBackButton = __WEBPACK_IMPORTED_MODULE_5__core_history__["a" /* default */].length > 1;
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()(__WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css___default.a.root, _defineProperty({}, __WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css___default.a.withImage, image)),
'data-selector': 'hero-universal__container'
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css___default.a.wrapper
}, void 0, image && _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["n" /* BlurredImage */], {
className: __WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css___default.a.backgroundImage,
img: image,
blur: 50,
tint: 0.5
}), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()('container small', __WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css___default.a.container)
}, void 0, label && showBackButton && _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["d" /* Button */], {
className: __WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css___default.a.backParent,
onClick: function onClick() {
__WEBPACK_IMPORTED_MODULE_5__core_history__["a" /* default */].goBack();
},
dataAnalytics: 'ut-back-link'
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["k" /* Icon */], {
icon: 'arrow-left',
theme: 'white'
}), _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css___default.a.backParentLabel,
dangerouslySetInnerHTML: { __html: label }
})), _jsx('h1', {
className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()(__WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css___default.a.headline, 'h2')
}, void 0, headline))), image && _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css___default.a.image
}, void 0, _jsx('div', {
className: 'container small'
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["b" /* Picture */], {
src: image
}))));
};
HeroUniversal.defaultProps = {
image: null,
back_cta_label: null
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_8__HeroUniversal_css___default.a)(HeroUniversal));
/***/ }),
/* 1445 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export MegaNav */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__store_ui_actions__ = __webpack_require__(18);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_variables_css_js__ = __webpack_require__(146);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__core_analyticsUtils__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__MegaNav_css__ = __webpack_require__(2547);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__MegaNav_css__);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var formatAnalyticsText = __WEBPACK_IMPORTED_MODULE_10__core_analyticsUtils__["c" /* default */].formatAnalyticsText;
var hoverStyles = {
color: __WEBPACK_IMPORTED_MODULE_9__src_variables_css_js__["f" /* ctaColor */]
};
var getLinkText = function getLinkText(label, textColor, transition) {
var _ref = textColor || {},
color = _ref.color;
var overrideStyles = color && { color: color, transition: transition };
if (!overrideStyles) return label;
return _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["_31" /* StyleOverride */], {
hoverStyles: hoverStyles,
styles: overrideStyles
}, void 0, label);
};
var MegaNav = function MegaNav(_ref2) {
var _cx;
var commonAnalyticsData = _ref2.commonAnalyticsData,
blockScroll = _ref2.blockScroll,
closeSubMenu = _ref2.closeSubMenu,
isDesktop = _ref2.isDesktop,
label = _ref2.label,
section = _ref2.section,
_ref2$section = _ref2.section,
sectionItems = _ref2$section.items,
sectionLayout = _ref2$section.layout,
sectionTitle = _ref2$section.title,
_ref2$subsection = _ref2.subsection,
_ref2$subsection$item = _ref2$subsection.items,
subsectionItems = _ref2$subsection$item === undefined ? [] : _ref2$subsection$item,
subsectionTitle = _ref2$subsection.title,
toggleMobileNav = _ref2.toggleMobileNav;
var closeMobileNav = function closeMobileNav() {
blockScroll(false);
if (!isDesktop) toggleMobileNav(false);
};
var sectionListItems = function sectionListItems(section) {
return sectionItems.map(function (_ref3, index) {
var ctaPage = _ref3.cta_page,
image = _ref3.image,
label = _ref3.label,
location = _ref3.location,
_ref3$target = _ref3.target,
target = _ref3$target === undefined ? '_self' : _ref3$target,
textColor = _ref3.text_color,
_ref3$type = _ref3.type,
type = _ref3$type === undefined ? 'textual' : _ref3$type,
url = _ref3.url;
var href = ctaPage ? ctaPage.url : url;
var alt = __WEBPACK_IMPORTED_MODULE_3_idx___default()(image, function (_) {
return _.alt;
}) || label;
var src = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__core_utils__["f" /* composeImageEngineUrl */])(__WEBPACK_IMPORTED_MODULE_3_idx___default()(image, function (_) {
return _.url;
}));
var imageJsx = (isDesktop || type === 'graphic') && _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default.a['image-mask']
}, void 0, _jsx('img', {
alt: alt,
src: src
}));
var linkText = getLinkText(label, textColor, 'inherit');
return _jsx('li', {
className: type
}, index, _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["a" /* Link */], {
analyticsData: _extends({}, commonAnalyticsData, {
click_text: formatAnalyticsText(label),
click_url: href,
link_position: index + 1
}),
accessibleText: label,
onClick: closeMobileNav,
target: target,
theme: 'plain',
to: href
}, void 0, imageJsx, _jsx('h5', {
className: __WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default.a.label
}, void 0, linkText), _jsx('h6', {
className: __WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default.a.location
}, void 0, location)));
});
};
var subsectionListItems = function subsectionListItems(section) {
return subsectionItems.map(function (_ref4, index) {
var _ref4$cta = _ref4.cta,
ctaPage = _ref4$cta.cta_page,
label = _ref4$cta.label,
_ref4$cta$target = _ref4$cta.target,
target = _ref4$cta$target === undefined ? '_self' : _ref4$cta$target,
url = _ref4$cta.url,
textColor = _ref4.text_color;
var href = ctaPage ? ctaPage.url : url;
var linkText = getLinkText(label, textColor);
return _jsx('li', {}, index, _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["a" /* Link */], {
analyticsData: _extends({}, commonAnalyticsData, {
click_text: formatAnalyticsText(label),
click_url: href,
link_position: index + 1
}),
accessibleText: label,
onClick: closeMobileNav,
target: target,
theme: 'plain',
to: href
}, void 0, linkText));
});
};
var classes = __WEBPACK_IMPORTED_MODULE_2_classnames___default()((_cx = {}, _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default.a.root, true), _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default.a['layout-in-columns'], sectionLayout === 'column'), _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default.a['layout-in-rows'], sectionLayout === 'row'), _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default.a['layout-in-grid'], sectionLayout === 'grid'), _defineProperty(_cx, sectionLayout, true), _cx));
return _jsx('div', {
className: classes
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default.a.wrapper
}, void 0, !isDesktop && _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["d" /* Button */], {
analyticsData: _extends({}, commonAnalyticsData, {
click_text: formatAnalyticsText(label)
}),
className: __WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default.a.backButton,
onClick: closeSubMenu
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["k" /* Icon */], {
icon: 'arrow-left',
size: 28,
viewboxHeight: 24,
viewboxWidth: 24
}), _jsx('span', {}, void 0, 'Menu / '), label), _jsx('section', {
className: __WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default.a.section
}, void 0, _jsx('p', {
className: 'eyebrow'
}, void 0, sectionTitle), _jsx('ul', {}, void 0, sectionListItems(label))), _jsx('section', {
className: __WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default.a.subsection
}, void 0, _jsx('p', {
className: 'eyebrow'
}, void 0, subsectionTitle), _jsx('ul', {}, void 0, subsectionListItems(subsectionTitle)))));
};
MegaNav.defaultProps = {
blockScroll: function blockScroll() {},
label: '',
subsection: null,
toggleMobileNav: function toggleMobileNav() {}
};
var mapDispatchToProps = {
blockScroll: __WEBPACK_IMPORTED_MODULE_6__store_ui_actions__["l" /* blockScroll */],
toggleMobileNav: __WEBPACK_IMPORTED_MODULE_6__store_ui_actions__["p" /* toggleMobileNav */]
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_5_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_11__MegaNav_css___default.a)(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4_react_redux__["connect"])(null, mapDispatchToProps)(MegaNav)));
/***/ }),
/* 1446 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export MenuButton */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__store_ui_actions__ = __webpack_require__(18);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__core_history__ = __webpack_require__(62);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__core_analyticsUtils__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__MenuButton_css__ = __webpack_require__(2548);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__MenuButton_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__MenuButton_css__);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var formatAnalyticsText = __WEBPACK_IMPORTED_MODULE_8__core_analyticsUtils__["c" /* default */].formatAnalyticsText;
var MenuButton = function MenuButton(props) {
var commonAnalyticsData = props.commonAnalyticsData,
children = props.children,
dispatch = props.dispatch,
onClick = props.onClick,
style = props.style,
target = props.target,
url = props.url,
type = props.type;
var clickHandler = target === '_blank' ? function () {
if (url) {
window.open(url);
dispatch(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__store_ui_actions__["p" /* toggleMobileNav */])(false));
}
onClick();
} : function () {
if (url) {
__WEBPACK_IMPORTED_MODULE_6__core_history__["a" /* default */].push(url);
dispatch(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__store_ui_actions__["p" /* toggleMobileNav */])(false));
}
onClick();
};
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
__WEBPACK_IMPORTED_MODULE_5__elements__["d" /* Button */],
_extends({
singleEventAnalytics: _extends({}, commonAnalyticsData, {
click_text: formatAnalyticsText(children[0]),
link_type: type,
click_url: url
}),
className: __WEBPACK_IMPORTED_MODULE_9__MenuButton_css___default.a.root,
onClick: clickHandler,
style: style
}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__core_utils__["i" /* pickDataProps */])(props)),
children
);
};
MenuButton.defaultProps = {
onClick: function onClick() {},
style: null,
target: '_self'
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_9__MenuButton_css___default.a)(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_react_redux__["connect"])()(MenuButton)));
/***/ }),
/* 1447 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export MenuItem */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__SubMenu_SubMenu__ = __webpack_require__(1448);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__MegaNav_MegaNav__ = __webpack_require__(1445);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__MenuButton_MenuButton__ = __webpack_require__(1446);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__core_analyticsUtils__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__MenuItem_css__ = __webpack_require__(2549);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__MenuItem_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__MenuItem_css__);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var formatAnalyticsText = __WEBPACK_IMPORTED_MODULE_7__core_analyticsUtils__["c" /* default */].formatAnalyticsText;
var MenuItem = function MenuItem(_ref) {
var _cx;
var closeMenuItem = _ref.closeMenuItem,
commonAnalyticsData = _ref.commonAnalyticsData,
_ref$data = _ref.data,
cta = _ref$data.cta,
items = _ref$data.items,
label = _ref$data.label,
section = _ref$data.section,
subsection = _ref$data.subsection,
target = _ref$data.target,
textColor = _ref$data.text_color,
type = _ref$data.type,
url = _ref$data.url,
index = _ref.index,
isDesktop = _ref.isDesktop,
isMenuForPrimary = _ref.isMenuForPrimary,
isOpen = _ref.isOpen,
onOpenMenuItem = _ref.onOpenMenuItem;
var handleOnOpenMenuItem = function handleOnOpenMenuItem() {
return !isOpen && onOpenMenuItem(index);
};
var handleCloseMenuItem = function handleCloseMenuItem() {
return isOpen && closeMenuItem();
};
var transitionDelay = Math.sin(index * (Math.PI / 360)) * 9 + 0.2 + 's';
var caretIcon = isDesktop ? 'msg-caret-down' : 'msg-caret-right';
var hasItems = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__core_utils__["e" /* isArrayWithLength */])(items);
var hasSection = !!section;
var hasSubMenu = !isMenuForPrimary && hasItems || isMenuForPrimary && hasSection;
var _ref2 = textColor || {},
color = _ref2.color;
var overrideStyles = color && { color: color };
var buttonText = overrideStyles ? _jsx(__WEBPACK_IMPORTED_MODULE_8__elements__["_31" /* StyleOverride */], {
styles: overrideStyles
}, void 0, label) : label;
var onClick = isOpen ? handleCloseMenuItem : handleOnOpenMenuItem;
var hasMouseEvents = isDesktop && hasSubMenu;
var onMouseOver = function onMouseOver() {
return hasMouseEvents && handleOnOpenMenuItem();
};
var onMouseOut = function onMouseOut() {
return hasMouseEvents && handleCloseMenuItem();
};
var subMenu = hasSubMenu && (isMenuForPrimary ? _jsx(__WEBPACK_IMPORTED_MODULE_5__MegaNav_MegaNav__["a" /* default */], {
commonAnalyticsData: commonAnalyticsData,
closeSubMenu: handleCloseMenuItem,
isDesktop: isDesktop,
items: items,
label: label,
section: section,
subsection: subsection
}) : _jsx(__WEBPACK_IMPORTED_MODULE_4__SubMenu_SubMenu__["a" /* default */], {
commonAnalyticsData: commonAnalyticsData,
cta: cta,
isDesktop: isDesktop,
items: items,
parentLabel: label
}));
var classes = __WEBPACK_IMPORTED_MODULE_2_classnames___default()((_cx = {}, _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_10__MenuItem_css___default.a.menuItem, true), _defineProperty(_cx, 'menuIsOpen', isOpen && hasSubMenu), _cx));
var linkModule = (isMenuForPrimary ? 'global' : 'venue') + '-navigation';
return _jsx('li', {
className: classes,
onMouseOut: onMouseOut,
onMouseOver: onMouseOver
}, label, _jsx(__WEBPACK_IMPORTED_MODULE_6__MenuButton_MenuButton__["a" /* default */], {
commonAnalyticsData: _extends({}, commonAnalyticsData, {
link_module: linkModule,
click_text: formatAnalyticsText(label),
click_url: 'https://www.msg.com/madison-square-garden'
}),
onClick: onClick,
style: { transitionDelay: transitionDelay },
target: target,
type: type,
url: url
}, void 0, buttonText, hasSubMenu && _jsx(__WEBPACK_IMPORTED_MODULE_8__elements__["k" /* Icon */], {
icon: caretIcon,
size: 10,
viewboxHeight: 10,
viewboxWidth: 11
})), subMenu);
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_10__MenuItem_css___default.a)(MenuItem));
/***/ }),
/* 1448 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export SubMenu */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__store_ui_actions__ = __webpack_require__(18);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__core_analyticsUtils__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__SubMenu_css__ = __webpack_require__(2550);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__SubMenu_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__SubMenu_css__);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var formatAnalyticsText = __WEBPACK_IMPORTED_MODULE_6__core_analyticsUtils__["c" /* default */].formatAnalyticsText;
var MAX_ITEMS_PER_COLUMN = 5;
var SubMenu = function SubMenu(_ref) {
var commonAnalyticsData = _ref.commonAnalyticsData,
blockScroll = _ref.blockScroll,
cta = _ref.cta,
_ref$cta = _ref.cta,
label = _ref$cta.label,
target = _ref$cta.target,
url = _ref$cta.url,
isDesktop = _ref.isDesktop,
items = _ref.items,
parentLabel = _ref.parentLabel,
toggleMobileNav = _ref.toggleMobileNav;
var closeMobileNav = function closeMobileNav() {
blockScroll(false);
if (!isDesktop) toggleMobileNav(false);
};
var listItems = items.map(function (_ref2, index) {
var destinationPage = _ref2.destination_page,
label = _ref2.label,
_ref2$target = _ref2.target,
target = _ref2$target === undefined ? '_self' : _ref2$target,
_ref2$type = _ref2.type,
type = _ref2$type === undefined ? 'textual' : _ref2$type,
url = _ref2.url;
var destinationPageUrl = __WEBPACK_IMPORTED_MODULE_3_idx___default()(destinationPage, function (_) {
return _.url;
});
var href = url || destinationPageUrl;
return _jsx('li', {
className: type
}, index, _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["a" /* Link */], {
analyticsData: _extends({}, commonAnalyticsData, {
click_text: formatAnalyticsText(label),
click_url: href,
link_position: index + 1
}),
accessibleText: label,
onClick: closeMobileNav,
target: target,
theme: 'plain',
to: href
}, void 0, label));
});
var columnCount = Math.ceil(items.length / MAX_ITEMS_PER_COLUMN);
var columnCountClass = columnCount === 1 ? 'single-column' : 'double-column';
var ctaLink = cta && isDesktop && _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["a" /* Link */], {
analyticsData: _extends({}, commonAnalyticsData, {
click_text: formatAnalyticsText(label),
click_url: url
}),
accessibleText: label,
className: __WEBPACK_IMPORTED_MODULE_8__SubMenu_css___default.a.ctaLink,
onClick: closeMobileNav,
target: target,
theme: 'plain',
to: url
}, void 0, label, _jsx(__WEBPACK_IMPORTED_MODULE_7__elements__["k" /* Icon */], {
icon: 'arrow-right',
size: 28,
viewboxHeight: 24,
viewboxWidth: 24
}));
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_8__SubMenu_css___default.a.root
}, void 0, _jsx('ul', {
className: __WEBPACK_IMPORTED_MODULE_8__SubMenu_css___default.a[columnCountClass]
}, void 0, listItems), ctaLink);
};
SubMenu.defaultProps = {
blockScroll: function blockScroll() {},
cta: null,
toggleMobileNav: function toggleMobileNav() {}
};
var mapDispatchToProps = {
blockScroll: __WEBPACK_IMPORTED_MODULE_5__store_ui_actions__["l" /* blockScroll */],
toggleMobileNav: __WEBPACK_IMPORTED_MODULE_5__store_ui_actions__["p" /* toggleMobileNav */]
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_8__SubMenu_css___default.a)(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_react_redux__["connect"])(null, mapDispatchToProps)(SubMenu)));
/***/ }),
/* 1449 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export MobileNav */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__store_ui_actions__ = __webpack_require__(18);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__store_ui_selectors__ = __webpack_require__(19);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Navigation__ = __webpack_require__(175);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Menu_Menu__ = __webpack_require__(449);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__MobileNav_css__ = __webpack_require__(2551);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__MobileNav_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__MobileNav_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var MobileNav = function MobileNav(_ref) {
var _cx;
var blockScroll = _ref.blockScroll,
isDesktop = _ref.isDesktop,
isMobileNavOpen = _ref.isMobileNavOpen,
_ref$primary = _ref.primary,
cta = _ref$primary.cta,
items = _ref$primary.items,
msgCompanyLogo = _ref$primary.msg_company_logo,
secondary = _ref.secondary,
toggleMobileNav = _ref.toggleMobileNav;
var close = function close() {
blockScroll(false);
toggleMobileNav(false);
};
var open = function open() {
blockScroll(true);
toggleMobileNav(true);
};
var primaryNav = _jsx(__WEBPACK_IMPORTED_MODULE_10__Menu_Menu__["a" /* default */], {
cta: cta,
isDesktop: isDesktop,
items: items,
mode: __WEBPACK_IMPORTED_MODULE_9__Navigation__["a" /* NAVBAR_POSITIONS */].PRIMARY,
msgCompanyLogo: msgCompanyLogo
});
var logoUrl = __WEBPACK_IMPORTED_MODULE_5_idx___default()(secondary, function (_) {
return _.image.sizes.msg_thumbnail;
});
var secondaryNav = secondary && _jsx(__WEBPACK_IMPORTED_MODULE_10__Menu_Menu__["a" /* default */], {
cta: secondary.cta,
isDesktop: isDesktop,
items: secondary.items,
mode: __WEBPACK_IMPORTED_MODULE_9__Navigation__["a" /* NAVBAR_POSITIONS */].SECONDARY,
secondaryNavLogo: logoUrl
});
var classes = __WEBPACK_IMPORTED_MODULE_4_classnames___default()((_cx = {}, _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_11__MobileNav_css___default.a.menu, true), _defineProperty(_cx, 'scrollable', true), _defineProperty(_cx, 'mobileNavIsOpen', isMobileNavOpen), _cx));
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_11__MobileNav_css___default.a.root
}, void 0, _jsx('button', {
className: __WEBPACK_IMPORTED_MODULE_11__MobileNav_css___default.a.hamburgerButton,
onClick: open
}, void 0, _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_11__MobileNav_css___default.a.hamburgerButtonLine
})), _jsx('aside', {
className: classes
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["d" /* Button */], {
className: __WEBPACK_IMPORTED_MODULE_11__MobileNav_css___default.a.closeButton,
onClick: close
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["k" /* Icon */], {
icon: 'close-small',
size: 24,
theme: 'white'
})), secondaryNav, primaryNav));
};
MobileNav.defaultProps = {
blockScroll: function blockScroll() {},
isGlobalNavStuck: false,
isMegaNavOpen: false,
secondary: null,
toggleMobileNav: function toggleMobileNav() {}
};
var mapStateToProps = function mapStateToProps(state) {
return {
areAdsEnabled: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__store_ui_selectors__["m" /* areAdsEnabled */])(state),
isMobileNavOpen: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__store_ui_selectors__["r" /* isMobileNavOpen */])(state)
};
};
var mapDispatchToProps = {
blockScroll: __WEBPACK_IMPORTED_MODULE_7__store_ui_actions__["l" /* blockScroll */],
toggleMobileNav: __WEBPACK_IMPORTED_MODULE_7__store_ui_actions__["p" /* toggleMobileNav */]
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_11__MobileNav_css___default.a)(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_react_redux__["connect"])(mapStateToProps, mapDispatchToProps)(MobileNav)));
/***/ }),
/* 1450 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export Navbar */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__core_history__ = __webpack_require__(62);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__core_constants__ = __webpack_require__(24);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__core_browserDetect__ = __webpack_require__(125);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__store_global_data_actions__ = __webpack_require__(78);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__store_ui_actions__ = __webpack_require__(18);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__store_ui_selectors__ = __webpack_require__(19);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__store_page_data_selectors__ = __webpack_require__(16);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__Menu_Menu__ = __webpack_require__(449);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__Search__ = __webpack_require__(1452);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__Navigation__ = __webpack_require__(175);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__Navbar_css__ = __webpack_require__(2552);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__Navbar_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_18__Navbar_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var commonAnalyticsData = {
event: 'click_nav',
click_tracking: 'global-navigation',
click_type: 'internal',
link_location: 'header',
link_type: 'nav',
link_module: 'global-navigation',
nav_type: 'global-navigation'
};
var CURRENT_HOMEPAGE_URL = 'https://www.msg.com/madison-square-garden';
var Navbar = function (_Component) {
_inherits(Navbar, _Component);
function Navbar(props) {
_classCallCheck(this, Navbar);
var _this = _possibleConstructorReturn(this, (Navbar.__proto__ || Object.getPrototypeOf(Navbar)).call(this, props));
_initialiseProps.call(_this);
_this.state = {
isMenuOpened: false,
isSearchOpened: false
};
return _this;
}
/**
* Close the Search Bar overlay.
*/
/**
* Focus on the search text input field when the search bar appears.
*/
/**
* Handle when the user clicks the spyglass icon in the global nav. If they
* are on the search results page, clear the current query and focus their
* cursor in the search field. If they're on any other page, reveal the
* global search overlay.
*/
/**
* Handle a search query that was submitted by the user.
*
* @param {string} query - the keywords they searched for
* @param {string} action - the url to which the form was submitted
*/
/**
* Toggle the visibility of the Search Bar overlay.
*/
/**
* Renders the Calendar Icon
*/
/**
* Renders search elements
*/
_createClass(Navbar, [{
key: 'render',
value: function render() {
var _cx,
_this2 = this;
var _props = this.props,
children = _props.children,
_props$data = _props.data,
_props$data$image = _props$data.image;
_props$data$image = _props$data$image === undefined ? {} : _props$data$image;
var _props$data$image$alt = _props$data$image.alt,
alt = _props$data$image$alt === undefined ? 'logo' : _props$data$image$alt,
imageUrl = _props$data$image.url,
items = _props$data.items,
msg_company_logo = _props$data.msg_company_logo,
section = _props$data.section,
venue_url = _props$data.venue_url,
hasCalendar = _props.hasCalendar,
hasSearch = _props.hasSearch,
isDesktop = _props.isDesktop,
isGlobalNavStuck = _props.isGlobalNavStuck,
isMegaNavOpen = _props.isMegaNavOpen,
menuMode = _props.menuMode,
slug = _props.slug;
var searchAnalyticsData = _extends({}, commonAnalyticsData, {
click_source: slug,
click_text: 'search-initiated',
click_tracking: 'search-initiated',
click_url: 'msg.com/search',
link_type: 'internal'
});
var isSearchOpened = this.state.isSearchOpened;
var isPrimary = menuMode === __WEBPACK_IMPORTED_MODULE_17__Navigation__["a" /* NAVBAR_POSITIONS */].PRIMARY;
var hasItems = Array.isArray(items) && items.length > 0;
var hasSection = !!section;
var hasMenu = (hasItems || hasSection) && isDesktop;
var searchIconTheme = (isGlobalNavStuck || isMegaNavOpen) && !isSearchOpened ? 'black' : 'white';
var logo = isPrimary ? _jsx(__WEBPACK_IMPORTED_MODULE_14__elements__["a" /* Link */], {
theme: 'plain',
className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(__WEBPACK_IMPORTED_MODULE_18__Navbar_css___default.a.logo, __WEBPACK_IMPORTED_MODULE_18__Navbar_css___default.a.primary),
to: '/',
accessibleText: 'MSG Logo',
analyticsData: _extends({}, commonAnalyticsData, {
click_source: slug,
click_text: 'msg-logo',
click_url: CURRENT_HOMEPAGE_URL
})
}, void 0, _jsx('img', {
src: msg_company_logo,
alt: __WEBPACK_IMPORTED_MODULE_7__core_constants__["z" /* MSG_LOGO_ALT */]
})) : _jsx(__WEBPACK_IMPORTED_MODULE_14__elements__["a" /* Link */], {
className: __WEBPACK_IMPORTED_MODULE_18__Navbar_css___default.a.logo,
to: venue_url,
accessibleText: 'Venue',
analyticsData: _extends({}, commonAnalyticsData, {
click_source: slug,
click_text: 'venue-navigation',
click_url: venue_url
})
}, void 0, _jsx('img', {
src: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__core_utils__["f" /* composeImageEngineUrl */])(imageUrl),
alt: alt
}));
// Ensure the zIndex for the primary is the highest.
var zIndex = isPrimary ? 1000 : 999;
var classnames = __WEBPACK_IMPORTED_MODULE_4_classnames___default()((_cx = {}, _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_18__Navbar_css___default.a.root, true), _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_17__Navigation__["a" /* NAVBAR_POSITIONS */].PRIMARY, isPrimary), _cx));
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
'nav',
{
className: classnames,
style: { zIndex: zIndex },
ref: function ref(_ref) {
_this2.nav = _ref;
}
},
_jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_18__Navbar_css___default.a.masthead
}, void 0, children, logo),
hasMenu && _jsx(__WEBPACK_IMPORTED_MODULE_15__Menu_Menu__["a" /* default */], {
commonAnalyticsData: _extends({}, commonAnalyticsData, {
click_source: slug
}),
isDesktop: isDesktop,
items: items,
mode: menuMode,
msgCompanyLogo: msg_company_logo
}),
hasSearch && _jsx(__WEBPACK_IMPORTED_MODULE_16__Search__["a" /* SearchButton */], {
onClick: this.handleClickSearchButton,
theme: searchIconTheme,
analyticsData: searchAnalyticsData
}),
hasCalendar && _jsx('div', {}, void 0, this.renderCalendarButton()),
hasSearch && this.renderSearch()
);
}
}]);
return Navbar;
}(__WEBPACK_IMPORTED_MODULE_0_react__["Component"]);
var _initialiseProps = function _initialiseProps() {
var _this3 = this;
this.closeSearch = function () {
_this3.setState({ isSearchOpened: false });
_this3.props.blockScroll(false);
};
this.focusInSearchBar = function () {
if (_this3.searchInput) {
_this3.searchInput.focus();
if (__WEBPACK_IMPORTED_MODULE_8__core_browserDetect__["a" /* default */].os === 'ios') {
_this3.props.blockScroll(true);
}
}
};
this.handleClickSearchButton = function () {
var headerInput = document.getElementById(__WEBPACK_IMPORTED_MODULE_7__core_constants__["A" /* SEARCH_PAGE_INPUT_ID */]);
if (headerInput) {
_this3.props.setSearchQuery('');
headerInput.focus();
} else {
_this3.toggleSearch();
}
};
this.handleSearch = function (query, action) {
if (!(query && action)) return;
var _props2 = _this3.props,
setSearchResultsFetching = _props2.setSearchResultsFetching,
openOverlay = _props2.openOverlay,
clearParams = _props2.clearParams;
window.scrollTo(0, 0);
setSearchResultsFetching(true);
openOverlay(_jsx(__WEBPACK_IMPORTED_MODULE_14__elements__["_8" /* Loading */], {}), {
allowScroll: true,
selfClose: true
});
clearParams();
__WEBPACK_IMPORTED_MODULE_6__core_history__["a" /* default */].push(action + '?' + __WEBPACK_IMPORTED_MODULE_7__core_constants__["b" /* SEARCH_QUERY_PARAM */] + '=' + query);
_this3.closeSearch();
if (_this3.searchInput) {
_this3.searchInput.blur();
}
};
this.toggleSearch = function () {
var isSearchOpened = _this3.state.isSearchOpened;
var nav = _this3.nav,
props = _this3.props;
if (!props.isGlobalNavStuck && nav) {
var rect = nav.getBoundingClientRect();
if (rect.top > 0) {
window.scrollTo(0, rect.top + window.pageYOffset);
}
}
_this3.setState({ isSearchOpened: !isSearchOpened });
};
this.renderCalendarButton = function () {
var _props3 = _this3.props,
calendarUrl = _props3.calendarUrl,
label = _props3.data.calendar.label,
slug = _props3.slug;
var analyticsData = _extends({}, commonAnalyticsData, {
click_source: slug,
click_text: 'calendar',
click_url: calendarUrl
});
return _jsx(__WEBPACK_IMPORTED_MODULE_14__elements__["a" /* Link */], {
className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(__WEBPACK_IMPORTED_MODULE_18__Navbar_css___default.a.calendarButton),
to: calendarUrl,
accessibleText: 'Calendar',
analyticsData: analyticsData
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_14__elements__["k" /* Icon */], {
size: 24,
viewboxWidth: 22,
viewboxHeight: 24,
icon: 'calendar',
theme: 'white'
}), _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_18__Navbar_css___default.a.calendarButtonText
}, void 0, label));
};
this.renderSearch = function () {
var isSearchOpened = _this3.state.isSearchOpened;
var data = _this3.props.data;
return _jsx('aside', {}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(__WEBPACK_IMPORTED_MODULE_18__Navbar_css___default.a.searchMask, _defineProperty({}, __WEBPACK_IMPORTED_MODULE_18__Navbar_css___default.a.searchMaskOpen, isSearchOpened)),
onClick: _this3.toggleSearch
}), _jsx(__WEBPACK_IMPORTED_MODULE_16__Search__["b" /* SearchBar */], {
close: _this3.closeSearch,
isOpen: isSearchOpened,
onOpen: _this3.focusInSearchBar
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_14__elements__["_32" /* SearchForm */], {
className: 'container',
labelText: __WEBPACK_IMPORTED_MODULE_5_idx___default()(data, function (_) {
return _.search.label_text;
}),
idRoot: 'global-search',
onSearch: _this3.handleSearch,
placeholderText: __WEBPACK_IMPORTED_MODULE_5_idx___default()(data, function (_) {
return _.search.placeholder_text;
}),
refInput: function refInput(ref) {
_this3.searchInput = ref;
}
})));
};
};
Navbar.defaultProps = {
calendarUrl: null,
children: null,
isGlobalNavStuck: false,
isMegaNavOpen: false,
blockScroll: function blockScroll() {},
setSearchQuery: function setSearchQuery() {},
setSearchResultsFetching: function setSearchResultsFetching() {},
openOverlay: function openOverlay() {}
/**
* Gets the component props from the store
*
* @param {Object} state State of the application
*/
};var mapStateToProps = function mapStateToProps(state) {
return {
isMegaNavOpen: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__store_ui_selectors__["s" /* isMegaNavOpen */])(state),
slug: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__store_page_data_selectors__["c" /* getPageSlug */])(state)
};
};
var mapDispatchToProps = {
blockScroll: __WEBPACK_IMPORTED_MODULE_11__store_ui_actions__["l" /* blockScroll */],
setSearchQuery: __WEBPACK_IMPORTED_MODULE_10__store_global_data_actions__["d" /* setSearchQuery */],
setSearchResultsFetching: __WEBPACK_IMPORTED_MODULE_10__store_global_data_actions__["c" /* setSearchResultsFetching */],
openOverlay: __WEBPACK_IMPORTED_MODULE_11__store_ui_actions__["d" /* openOverlay */],
clearParams: __WEBPACK_IMPORTED_MODULE_10__store_global_data_actions__["e" /* clearParams */]
};
/* harmony default export */ __webpack_exports__["a"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_react_redux__["connect"])(mapStateToProps, mapDispatchToProps)(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_18__Navbar_css___default.a)(Navbar)));
/***/ }),
/* 1451 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export SearchBar */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_ally_js_maintain_tab_focus__ = __webpack_require__(265);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_ally_js_maintain_tab_focus___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_ally_js_maintain_tab_focus__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__SearchButton__ = __webpack_require__(450);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__SearchBar_css__ = __webpack_require__(2554);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__SearchBar_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__SearchBar_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var SearchBar = function SearchBar(_ref) {
var children = _ref.children,
close = _ref.close,
isOpen = _ref.isOpen,
onOpen = _ref.onOpen;
if (!__WEBPACK_IMPORTED_MODULE_5__core_utils__["c" /* isBrowser */]) return null; /* Prevents Loadable Components throwing invalid hook call on server */
var rootRef = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useRef"])(null);
var tabFocus = void 0;
var prevFocusedElement = void 0;
var setupAccessibilityHandlers = function setupAccessibilityHandlers() {
if (tabFocus) tabFocus.disengage();
if (rootRef) {
tabFocus = __WEBPACK_IMPORTED_MODULE_4_ally_js_maintain_tab_focus___default()({
context: rootRef
});
}
};
var destroyAccessibilityHandlers = function destroyAccessibilityHandlers() {
if (tabFocus) tabFocus.disengage();
if (prevFocusedElement) prevFocusedElement.focus();
};
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
return function () {
return destroyAccessibilityHandlers();
};
}, []);
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
if (isOpen) {
setupAccessibilityHandlers();
prevFocusedElement = document.activeElement;
onOpen();
} else {
destroyAccessibilityHandlers();
}
}, [isOpen]);
var rootClassNames = __WEBPACK_IMPORTED_MODULE_3_classnames___default()(__WEBPACK_IMPORTED_MODULE_7__SearchBar_css___default.a.root, _defineProperty({}, __WEBPACK_IMPORTED_MODULE_7__SearchBar_css___default.a.open, isOpen));
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
'div',
{ className: rootClassNames, ref: rootRef },
children,
_jsx(__WEBPACK_IMPORTED_MODULE_6__SearchButton__["b" /* SearchButton */], {
className: __WEBPACK_IMPORTED_MODULE_7__SearchBar_css___default.a.closeButton,
isSearchOpened: true,
onClick: close
})
);
};
SearchBar.defaultProps = {
children: [],
close: __WEBPACK_IMPORTED_MODULE_5__core_utils__["Q" /* noop */],
isOpen: false,
onOpen: __WEBPACK_IMPORTED_MODULE_5__core_utils__["Q" /* noop */]
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_7__SearchBar_css___default.a)(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["memo"])(SearchBar)));
/***/ }),
/* 1452 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__SearchBar__ = __webpack_require__(1451);
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__SearchBar__["a"]; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__SearchButton__ = __webpack_require__(450);
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_1__SearchButton__["a"]; });
/***/ }),
/* 1453 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export Overlay */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_debounce__ = __webpack_require__(38);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_debounce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_debounce__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_ally_js_maintain_disabled__ = __webpack_require__(392);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_ally_js_maintain_disabled___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_ally_js_maintain_disabled__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_ally_js_maintain_hidden__ = __webpack_require__(393);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_ally_js_maintain_hidden___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_ally_js_maintain_hidden__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_ally_js_maintain_tab_focus__ = __webpack_require__(265);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_ally_js_maintain_tab_focus___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_ally_js_maintain_tab_focus__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_ally_js_query_first_tabbable__ = __webpack_require__(394);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_ally_js_query_first_tabbable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_ally_js_query_first_tabbable__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__store_ui_selectors__ = __webpack_require__(19);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__store_ui_actions__ = __webpack_require__(18);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__Overlay_css__ = __webpack_require__(2558);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__Overlay_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14__Overlay_css__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__core_utils_js__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__core_analyticsUtils__ = __webpack_require__(15);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var buildLinkName = __WEBPACK_IMPORTED_MODULE_16__core_analyticsUtils__["c" /* default */].buildLinkName;
var OFFSET_GAP = 10;
var Overlay = function (_React$Component) {
_inherits(Overlay, _React$Component);
function Overlay(props) {
_classCallCheck(this, Overlay);
var _this = _possibleConstructorReturn(this, (Overlay.__proto__ || Object.getPrototypeOf(Overlay)).call(this, props));
_this.onClose = function () {
var _this$props = _this.props,
closeOverlay = _this$props.closeOverlay,
onClose = _this$props.options.onClose;
closeOverlay();
if (typeof onClose === 'function') onClose();
};
_this.setupAccessibilityHandlers = function () {
if (!_this.overlay) {
return;
}
_this.ally = __WEBPACK_IMPORTED_MODULE_6_ally_js_maintain_disabled___default()({
filter: _this.overlay
});
// adjust non visible things to be hidden from screen reader
_this.hiddenElements = __WEBPACK_IMPORTED_MODULE_7_ally_js_maintain_hidden___default()({
filter: _this.overlay
});
// trap focus into only the dialogue
_this.tabFocus = __WEBPACK_IMPORTED_MODULE_8_ally_js_maintain_tab_focus___default()({
context: _this.overlay
});
// focus on the first focusable element within the dialogue
var element = __WEBPACK_IMPORTED_MODULE_9_ally_js_query_first_tabbable___default()({
context: _this.overlay,
defaultToContext: true
});
if (element) {
element.focus();
if (element.className.includes('arrow')) element.blur();
}
};
_this.mediumMediaListener = function (event) {
if (event.matches) {
_this.removeSmallViewportHandlers();
} else {
_this.setSmallViewportHandlers();
}
};
_this.updateViewportHeight = function () {
var viewportHeight = window.innerHeight;
/**
* The computed length of 100vh doesn’t get updated when the Safari-iOS status bar appears, leading
* into some issues with content at bottom of the overlay on small viewport
*/
if (_this.overlay && viewportHeight !== _this.overlay.offsetHeight) {
_this.overlay.style.height = viewportHeight + 'px';
}
};
_this.destroyAccessibilityHandlers = function () {
if (_this.hiddenElements) {
_this.hiddenElements.disengage();
}
if (_this.ally) {
_this.ally.disengage();
}
if (_this.tabFocus) {
_this.tabFocus.disengage();
}
if (_this.prevFocusedElement) {
_this.prevFocusedElement.focus();
}
};
_this.openOverlay = function () {
_this.setupAccessibilityHandlers();
_this.establishOverlayVisibility();
_this.toggleKeyListener(true);
_this.props.blockScroll(true, __WEBPACK_IMPORTED_MODULE_3_idx___default()(_this, function (_) {
return _.props.options.blockScrollOffset;
}) || 0);
_this.setState({
isOpen: true
});
if (!_this.mediumMedia.matches) {
_this.updateViewportHeight();
}
};
_this.closeOverlay = function () {
_this.destroyAccessibilityHandlers();
_this.toggleKeyListener(false);
_this.setState({
offsetStyles: {}
});
_this.props.blockScroll(false);
_this.setState({
isOpen: false
});
};
_this.toggleKeyListener = function (toggle) {
if (toggle) {
window.addEventListener('keyup', _this.keyListener);
} else {
window.removeEventListener('keyup', _this.keyListener);
}
};
_this.keyListener = function (e) {
switch (e.keyCode) {
case 27:
// escape
_this.props.closeOverlay();
break;
default:
break;
}
};
_this.state = {
offsetStyles: {},
isOpen: false
};
_this.updateViewportHeightDebounce = __WEBPACK_IMPORTED_MODULE_5_debounce___default()(_this.updateViewportHeight, 60);
return _this;
}
_createClass(Overlay, [{
key: 'componentDidMount',
value: function componentDidMount() {
this.mediumMedia = window.matchMedia('(min-width: ' + __WEBPACK_IMPORTED_MODULE_15__core_utils_js__["_1" /* MEDIUM */] + 'px)');
if (!this.mediumMedia.matches) {
this.setSmallViewportHandlers();
}
this.mediumMedia.addListener(this.mediumMediaListener);
}
}, {
key: 'componentDidUpdate',
value: function componentDidUpdate() {
var open = this.props.open;
if (open && !this.state.isOpen) {
this.prevFocusedElement = document.activeElement;
this.openOverlay();
}
if (!open && this.state.isOpen) {
this.closeOverlay();
}
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__store_ui_actions__["l" /* blockScroll */])(false);
if (this.state.isOpen) {
this.closeOverlay();
}
this.removeSmallViewportHandlers();
this.mediumMedia.removeListener(this.mediumMediaListener);
}
}, {
key: 'setSmallViewportHandlers',
value: function setSmallViewportHandlers() {
window.addEventListener('resize', this.updateViewportHeightDebounce);
}
}, {
key: 'removeSmallViewportHandlers',
value: function removeSmallViewportHandlers() {
window.removeEventListener('resize', this.updateViewportHeightDebounce);
}
}, {
key: 'establishOverlayVisibility',
/**
* If the overlay has a relative position, this method ensures that
* it will always be visible on the screen. It sets a max width/height, and
* offsets its position if it goes off screen.
*/
value: function establishOverlayVisibility() {
var _this2 = this;
if (!__WEBPACK_IMPORTED_MODULE_3_idx___default()(this.props, function (_) {
return _.options.relative;
}) || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__core_utils_js__["U" /* isSmall */])()) return;
var rect = this.props.options.relative;
if (!rect) {
return;
}
var offsetStyles = {
left: rect.left + 'px',
top: rect.top + 'px'
};
this.setState({
offsetStyles: offsetStyles
}, function () {
var rootRect = _this2.overlay.getBoundingClientRect();
if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__core_utils_js__["_2" /* getEdgesOffScreen */])(rootRect).length > 0) {
_this2.setState({
offsetStyles: _extends({}, offsetStyles, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__core_utils_js__["_3" /* getOffsetStyles */])(rootRect, OFFSET_GAP))
});
}
});
}
}, {
key: 'render',
value: function render() {
var _this3 = this;
var _props = this.props,
closeOverlay = _props.closeOverlay,
items = _props.items,
open = _props.open,
_props$options = _props.options,
ctaDataAnalytics = _props$options.ctaDataAnalytics,
isOptIn = _props$options.isOptIn;
var _props$options2 = this.props.options,
selfClose = _props$options2.selfClose,
zIndex = _props$options2.zIndex,
theme = _props$options2.theme,
headline = _props$options2.headline,
customClass = _props$options2.customClass,
customClose = _props$options2.customClose,
overrideStyling = _props$options2.overrideStyling;
var hasTheme = theme !== false;
var isRelative = __WEBPACK_IMPORTED_MODULE_3_idx___default()(this.props, function (_) {
return _.options.relative;
});
var iconTheme = theme === 'black' ? 'white' : 'default';
if (open) {
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(__WEBPACK_IMPORTED_MODULE_14__Overlay_css___default.a.overlay, _defineProperty({}, theme, hasTheme), customClass, 'scrollable'),
style: { zIndex: zIndex },
'data-selector': 'overlay__container',
role: 'dialog',
'aria-labelledby': 'overlay-headline'
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_13__elements__["_30" /* OverlayCloser */], {
closeOverlay: isOptIn ? this.onClose : closeOverlay
}, void 0, __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
'div',
{
style: _extends({}, this.state.offsetStyles, overrideStyling),
className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(_defineProperty({}, __WEBPACK_IMPORTED_MODULE_14__Overlay_css___default.a['relative-overlay'], isRelative)),
ref: function ref(overlay) {
_this3.overlay = overlay;
}
},
headline && headline !== '' && _jsx('header', {
className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(__WEBPACK_IMPORTED_MODULE_14__Overlay_css___default.a.header, 'overlay-header')
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_14__Overlay_css___default.a.container + ' container'
}, void 0, _jsx('h1', {
id: 'overlay-headline',
className: 'h2'
}, void 0, headline))),
items,
!selfClose && !customClose && _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_14__Overlay_css___default.a.close
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_13__elements__["d" /* Button */], {
dataLinkname: buildLinkName(ctaDataAnalytics, 'close-seatmaps'),
onClick: this.onClose,
accessibleText: 'Close the overlay',
theme: 'plain'
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_13__elements__["k" /* Icon */], {
icon: 'close',
theme: iconTheme
})))
)));
}
return null;
}
}]);
return Overlay;
}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);
Overlay.defaultProps = {
items: false,
open: false,
options: {
allowScroll: false,
blockScrollOffset: 0,
ctaDataAnalytics: null,
customClass: '',
customClose: false,
headline: ' ',
onClose: function onClose() {
return null;
},
overrideStyling: null,
relative: false,
selfClose: false,
isOptIn: false,
simple: false,
theme: false,
zIndex: false
}
};
var mapStateToProps = function mapStateToProps(state) {
return {
open: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__store_ui_selectors__["d" /* isOverlayOpen */])(state),
items: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__store_ui_selectors__["p" /* getOverlayItems */])(state),
options: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__store_ui_selectors__["q" /* getOverlayOptions */])(state)
};
};
var OverlayRedux = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10_react_redux__["connect"])(mapStateToProps, { closeOverlay: __WEBPACK_IMPORTED_MODULE_12__store_ui_actions__["b" /* closeOverlay */], blockScroll: __WEBPACK_IMPORTED_MODULE_12__store_ui_actions__["l" /* blockScroll */] })(Overlay);
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_14__Overlay_css___default.a)(OverlayRedux));
/***/ }),
/* 1454 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export RelatedContent */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__elements_Slider_slider_settings__ = __webpack_require__(43);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__RelatedContent_css__ = __webpack_require__(2563);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__RelatedContent_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__RelatedContent_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
/**
* Related Content component for UniversalTemplate
*/
var RelatedContent = function (_React$Component) {
_inherits(RelatedContent, _React$Component);
function RelatedContent() {
var _ref;
var _temp, _this, _ret;
_classCallCheck(this, RelatedContent);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = RelatedContent.__proto__ || Object.getPrototypeOf(RelatedContent)).call.apply(_ref, [this].concat(args))), _this), _this.renderSlider = function () {
var slides = _this.props.cards.map(function (card, cardIndex) {
var cardHeadline = card.headline,
cardCta = card.cta,
cardImage = card.image;
return _jsx(__WEBPACK_IMPORTED_MODULE_4__elements__["G" /* Slide */], {
slideClass: 'card-slide constant-card'
}, cardIndex, _jsx(__WEBPACK_IMPORTED_MODULE_4__elements__["_29" /* RelatedContentCard */], {
headline: cardHeadline,
image: cardImage,
cta: cardCta
}));
});
return _jsx(__WEBPACK_IMPORTED_MODULE_4__elements__["F" /* Slider */], {
className: __WEBPACK_IMPORTED_MODULE_6__RelatedContent_css___default.a.slider,
settings: __WEBPACK_IMPORTED_MODULE_5__elements_Slider_slider_settings__["e" /* RelatedContentCarouselSettings */],
bottomArrowDots: true,
bottomArrowClass: __WEBPACK_IMPORTED_MODULE_6__RelatedContent_css___default.a.arrows,
sliderId: 'related-content-carousel-id'
}, void 0, slides);
}, _this.renderCards = function () {
var relatedContent = _this.props.cards.map(function (card, cardIndex) {
var cardHeadline = card.headline,
cardCta = card.cta,
cardImage = card.image;
return _jsx(__WEBPACK_IMPORTED_MODULE_4__elements__["_29" /* RelatedContentCard */], {
headline: cardHeadline,
image: cardImage,
cta: cardCta
}, cardIndex);
});
return relatedContent;
}, _temp), _possibleConstructorReturn(_this, _ret);
}
_createClass(RelatedContent, [{
key: 'render',
value: function render() {
var _props = this.props,
msg_jumplink = _props.msg_jumplink,
eyebrow = _props.eyebrow,
headline = _props.headline;
return _jsx('div', {
id: msg_jumplink || '',
'data-selector': 'related-content__container'
}, void 0, _jsx('div', {
className: 'container'
}, void 0, _jsx('header', {}, void 0, _jsx('h4', {
className: 'eyebrow'
}, void 0, eyebrow), _jsx('h2', {}, void 0, headline))), _jsx('div', {}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_6__RelatedContent_css___default.a['slider-container']
}, void 0, this.renderSlider()), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_6__RelatedContent_css___default.a['cards-container']
}, void 0, this.renderCards())));
}
}]);
return RelatedContent;
}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);
RelatedContent.defaultProps = {
msg_jumplink: false
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_6__RelatedContent_css___default.a)(RelatedContent));
/***/ }),
/* 1455 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__OfferGridNav_css__ = __webpack_require__(2569);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__OfferGridNav_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__OfferGridNav_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var onChange = function onChange(value, changeFilter) {
return function () {
return changeFilter(value);
};
};
var OfferGridNav = function OfferGridNav(_ref) {
var changeFilter = _ref.changeFilter,
currentFilter = _ref.currentFilter,
filterList = _ref.filterList;
return _jsx('ul', {
className: __WEBPACK_IMPORTED_MODULE_5__OfferGridNav_css___default.a['filter-list']
}, void 0, filterList.map(function (filter) {
return _jsx('li', {
className: __WEBPACK_IMPORTED_MODULE_5__OfferGridNav_css___default.a['filter-item']
}, filter.value, _jsx(__WEBPACK_IMPORTED_MODULE_4__elements__["d" /* Button */], {
className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()(__WEBPACK_IMPORTED_MODULE_5__OfferGridNav_css___default.a.button, {
active: currentFilter === filter.value
}),
onClick: onChange(filter.value, changeFilter),
theme: 'plain'
}, void 0, filter.label));
}));
};
OfferGridNav.defaultProps = {
changeFilter: function changeFilter() {},
currentFilter: 'all',
filterList: []
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_5__OfferGridNav_css___default.a)(OfferGridNav));
/***/ }),
/* 1456 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LoadingStyled; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_styled_components__ = __webpack_require__(102);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__elements_Loading__ = __webpack_require__(461);
var _templateObject = _taggedTemplateLiteral(['\n padding: 100px;\n '], ['\n padding: 100px;\n ']);
function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
var LoadingStyled = __WEBPACK_IMPORTED_MODULE_1__elements_Loading__["a" /* default */] && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_styled_components__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_1__elements_Loading__["a" /* default */])(_templateObject);
/***/ }),
/* 1457 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export SeatmapModule */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__core_fetch__ = __webpack_require__(180);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__store_event_engine_actions__ = __webpack_require__(83);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__store_event_engine_selectors__ = __webpack_require__(84);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__store_ui_selectors__ = __webpack_require__(19);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__store_page_data_selectors__ = __webpack_require__(16);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__data_eventEngineAPI__ = __webpack_require__(223);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__SeatmapModule_css_js__ = __webpack_require__(1456);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var SeatmapModule = function SeatmapModule(_ref) {
var config = _ref.config,
fetchEeData = _ref.fetchEeData,
svgUrl = _ref.svgUrl,
type = _ref.type,
venueId = _ref.venueId;
if (!__WEBPACK_IMPORTED_MODULE_9__core_utils__["c" /* isBrowser */]) return null; /* Prevents Loadable Components throwing invalid hook call on server */
var _useState = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(null),
_useState2 = _slicedToArray(_useState, 2),
svg = _useState2[0],
setSvg = _useState2[1];
var isCurrentlyMounted = false;
var fetchSeatmap = function fetchSeatmap(svgUrl) {
var configApiUrl = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__data_eventEngineAPI__["a" /* getSeatmapApiPath */])(venueId, type);
fetchEeData(configApiUrl);
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__core_fetch__["a" /* default */])(svgUrl).then(function (data) {
return data.text();
}).then(function (svg) {
return isCurrentlyMounted && setSvg(svg);
});
};
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
isCurrentlyMounted = true;
if (svgUrl) fetchSeatmap(svgUrl);
return function () {
isCurrentlyMounted = false;
};
}, []);
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
if (!svgUrl) return;
setSvg(null);
fetchSeatmap(svgUrl);
}, [svgUrl]);
var svgSeatmap = svg && config ? _jsx(__WEBPACK_IMPORTED_MODULE_8__elements__["_23" /* SvgSeatmap */], {
svg: svg,
config: config
}) : _jsx(__WEBPACK_IMPORTED_MODULE_11__SeatmapModule_css_js__["a" /* LoadingStyled */], {
fullScreen: false,
showLabel: false
});
return svgSeatmap;
};
SeatmapModule.defaultProps = {
config: null,
svgUrl: null,
type: null,
venueId: null
};
var mapStateToProps = function mapStateToProps(state) {
var slug = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__store_page_data_selectors__["c" /* getPageSlug */])(state);
var allSeatmaps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__store_page_data_selectors__["e" /* getSeatmaps */])(state, slug);
var selectedSeatmap = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__store_ui_selectors__["i" /* getSelectedSeatmap */])(state);
var venueId = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__store_page_data_selectors__["o" /* getVenueId */])(state, slug);
var seatmap = void 0;
if (Array.isArray(allSeatmaps)) {
if (selectedSeatmap) {
seatmap = allSeatmaps.find(function (_ref2) {
var type = _ref2.type;
return type === selectedSeatmap;
});
}
if (!seatmap) {
seatmap = allSeatmaps[0];
}
}
var _seatmap = seatmap,
svgUrl = _seatmap.svg_url,
type = _seatmap.type;
var configApiPath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__data_eventEngineAPI__["a" /* getSeatmapApiPath */])(venueId, type);
var config = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__store_event_engine_selectors__["f" /* getSeatmapConfig */])(state, configApiPath);
return {
config: config,
svgUrl: svgUrl,
type: type,
venueId: venueId
};
};
var mapDispatchToProps = {
fetchEeData: __WEBPACK_IMPORTED_MODULE_4__store_event_engine_actions__["a" /* fetchEeData */]
};
/* harmony default export */ __webpack_exports__["a"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_react_redux__["connect"])(mapStateToProps, mapDispatchToProps)(SeatmapModule));
/***/ }),
/* 1458 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__SocialMediaLinks_css__ = __webpack_require__(2572);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__SocialMediaLinks_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__SocialMediaLinks_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var SocialMediaLinks = function SocialMediaLinks(_ref) {
var links = _ref.links,
title = _ref.title;
var socialMediaIcons = links.map(function (_ref2, index) {
var socialPlatform = _ref2.social_platform,
url = _ref2.url;
return _jsx(__WEBPACK_IMPORTED_MODULE_4__elements__["_22" /* SocialMediaIcon */], {
analyticsPrefix: 'footer:follow:social',
href: url,
icon: socialPlatform.toLowerCase()
}, index);
});
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__SocialMediaLinks_css___default.a.container
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_5__SocialMediaLinks_css___default.a['social-media-links'], 'container')
}, void 0, _jsx('section', {
className: 'section'
}, void 0, _jsx('header', {
className: __WEBPACK_IMPORTED_MODULE_5__SocialMediaLinks_css___default.a['social-media-title']
}, void 0, _jsx('h2', {}, void 0, title)), socialMediaIcons)));
};
SocialMediaLinks.defaultProps = {
links: [],
title: 'Follow Us'
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_5__SocialMediaLinks_css___default.a)(SocialMediaLinks));
/***/ }),
/* 1459 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export TopLeaderboardAd */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_debounce__ = __webpack_require__(38);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_debounce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_debounce__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__store_ui_actions_js__ = __webpack_require__(18);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__store_ui_selectors__ = __webpack_require__(19);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__TopLeaderboardAd_css__ = __webpack_require__(2575);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__TopLeaderboardAd_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__TopLeaderboardAd_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var TopLeaderboardAd = function TopLeaderboardAd(_ref) {
var enabled = _ref.enabled,
id = _ref.id;
if (!__WEBPACK_IMPORTED_MODULE_9__core_utils__["c" /* isBrowser */]) return null; /* Prevents Loadable Components throwing invalid hook call on server */
var rootRef = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useRef"])(null);
var rootHeight = 0;
var resizeHandler = __WEBPACK_IMPORTED_MODULE_4_debounce___default()(function () {
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__store_ui_actions_js__["m" /* addExternalSpace */])(rootRef.current.clientHeight - rootHeight);
rootHeight = rootRef.current.clientHeight;
}, 250);
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
window.addEventListener('resize', resizeHandler);
return function () {
return window.removeEventListener('resize', resizeHandler);
};
}, []);
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
if (enabled) {
setTimeout(function () {
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__store_ui_actions_js__["m" /* addExternalSpace */])(rootRef.current.clientHeight);
}, 0);
}
}, [enabled]);
var classes = __WEBPACK_IMPORTED_MODULE_2_classnames___default()('ad-container', { enabled: enabled }, __WEBPACK_IMPORTED_MODULE_10__TopLeaderboardAd_css___default.a.root);
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
'div',
{
className: classes,
'data-selector': 'top-leaderboard-ad__container',
ref: rootRef
},
_jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["_16" /* DoubleClickAd */], {
id: id,
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()('ad', __WEBPACK_IMPORTED_MODULE_10__TopLeaderboardAd_css___default.a.unit)
})
);
};
TopLeaderboardAd.defaultProps = {
id: 'div-id-for-top-leaderboard'
};
var mapStateToProps = function mapStateToProps(state) {
return {
enabled: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__store_ui_selectors__["m" /* areAdsEnabled */])(state)
};
};
var mapDispatchToProps = {
addExternalSpace: __WEBPACK_IMPORTED_MODULE_7__store_ui_actions_js__["m" /* addExternalSpace */]
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_5_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_10__TopLeaderboardAd_css___default.a)(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_react_redux__["connect"])(mapStateToProps, mapDispatchToProps)(TopLeaderboardAd)));
/***/ }),
/* 1460 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css__ = __webpack_require__(2578);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var UpsellOffer = function UpsellOffer(_ref) {
var image = _ref.image,
label = _ref.label,
label2 = _ref.label2,
eyebrow = _ref.eyebrow,
headline = _ref.headline,
description = _ref.description,
cta = _ref.cta;
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default.a.root
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default.a.left
}, void 0, _jsx('p', {
className: 'eyebrow'
}, void 0, eyebrow), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default.a['headline-container']
}, void 0, _jsx('h3', {
className: 'callout'
}, void 0, label), label2 && _jsx('h3', {
className: 'callout ' + __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default.a['second-line']
}, void 0, label2), _jsx(__WEBPACK_IMPORTED_MODULE_4__elements__["j" /* Cover */], {
className: __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default.a['image-cover']
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_4__elements__["b" /* Picture */], {
src: image
})))), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default.a.right
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default.a.wrapper
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default.a['copy-section']
}, void 0, _jsx('p', {
className: 'eyebrow'
}, void 0, eyebrow), _jsx('h5', {
className: __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default.a['copy-headline']
}, void 0, headline), _jsx('p', {
className: 'medium'
}, void 0, description)), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default.a['cta-container']
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_4__elements__["a" /* Link */], {
cta: cta,
className: __WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default.a.cta,
theme: 'primary'
})))));
};
UpsellOffer.defaultProps = {
label2: ''
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_5__UpsellOffer_css___default.a)(UpsellOffer));
/***/ }),
/* 1461 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export UrgentSales */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_redux__ = __webpack_require__(60);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_debounce__ = __webpack_require__(38);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_debounce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_debounce__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_moment_timezone__ = __webpack_require__(50);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_moment_timezone___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_moment_timezone__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css__ = __webpack_require__(2579);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__UrgentSales_css__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__store_ui_actions__ = __webpack_require__(18);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__store_ui_selectors__ = __webpack_require__(19);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var UrgentSales = function (_React$Component) {
_inherits(UrgentSales, _React$Component);
/**
* initializes the state of the component and add a resize listener
* */
function UrgentSales(props) {
_classCallCheck(this, UrgentSales);
var _this = _possibleConstructorReturn(this, (UrgentSales.__proto__ || Object.getPrototypeOf(UrgentSales)).call(this, props));
_this.resizeHandler = function () {
if (_this.props.lastBreakPoint !== 'small') {
_this.setState({ collapsedEventTitle: _this.props.urgent_sales_event.name });
} else {
_this.setState({ collapsedEventTitle: _this.collapsedEventTitle });
}
_this.dispatchExtraSpace();
};
_this.hideButtonHandler = function () {
_this.setState({
collapsed: !_this.state.collapsed
}, function () {
_this.props.addExternalSpace(_this.root.clientHeight - _this.rootHeight);
_this.rootHeight = _this.root.clientHeight;
});
};
_this.dispatchExtraSpace = function () {
if (!_this.root) return;
_this.props.addExternalSpace(_this.root.clientHeight - _this.rootHeight);
_this.rootHeight = _this.root.clientHeight;
};
var urgent_sales_event = _this.props.urgent_sales_event;
// This is to prevent undefined errors when the event isn't present for
// some reason. Whenever there are event deletes, not checking for this case
// might cause a total crash of the app.
if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__core_utils__["C" /* isEmptyOrNull */])(urgent_sales_event)) {
_this.collapsedEventTitle = urgent_sales_event.name.substring(0, 35);
if (urgent_sales_event.name.length >= 35) {
_this.collapsedEventTitle = _this.collapsedEventTitle.concat('...');
}
var venueName = __WEBPACK_IMPORTED_MODULE_6_idx___default()(urgent_sales_event, function (_) {
return _.venue.name;
});
var venueCityName = __WEBPACK_IMPORTED_MODULE_6_idx___default()(urgent_sales_event, function (_) {
return _.venue.city.name;
});
var venueStateCode = __WEBPACK_IMPORTED_MODULE_6_idx___default()(urgent_sales_event, function (_) {
return _.venue.state.stateCode;
});
_this.venueLocation = venueName + ', ' + venueCityName + ', ' + venueStateCode;
_this.state = {
collapsed: false,
collapsedEventTitle: _this.collapsedEventTitle
};
_this.resizeHandler = __WEBPACK_IMPORTED_MODULE_5_debounce___default()(_this.resizeHandler, 250);
_this.rootHeight = 0;
var splittedFlag = 'Tickets still available'.split(' ');
_this.eventHeadlineFirstLine = splittedFlag.slice(0, Math.ceil(splittedFlag.length / 2)).join(' ').concat(' ');
_this.eventHeadlineSecondLine = splittedFlag.slice(Math.ceil(splittedFlag.length / 2), splittedFlag.length).join(' ');
}
return _this;
}
/**
* add external space for urgent sales module
* */
_createClass(UrgentSales, [{
key: 'componentDidMount',
value: function componentDidMount() {
window.addEventListener('resize', this.resizeHandler);
if (this.root) {
this.rootHeight = this.root.clientHeight;
this.props.addExternalSpace(this.root.clientHeight);
this.resizeHandler();
}
}
/**
* clean listeners
* */
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
if (this.root) {
this.props.removeExternalSpace(this.root.clientHeight);
}
window.removeEventListener('resize', this.resizeHandler);
}
/**
* as the extra space changes according to the window size,
* this handles the extra space
* */
}, {
key: 'UNSAFE_componentWillMount',
/**
* called just for shorten the event name on small screens,
* setting state on componentDidMount throws a linter warning
* */
value: function UNSAFE_componentWillMount() {
if (__WEBPACK_IMPORTED_MODULE_11__core_utils__["c" /* isBrowser */] && this.props.lastBreakPoint !== 'small') {
this.setState({ collapsedEventTitle: this.props.urgent_sales_event.name });
}
}
}, {
key: 'render',
value: function render() {
var _this2 = this;
var urgentSalesEvent = this.props.urgent_sales_event;
if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__core_utils__["C" /* isEmptyOrNull */])(urgentSalesEvent)) return null;
var alternateDetailUrl = urgentSalesEvent.alternate_detail_url,
cta = urgentSalesEvent.cta,
eventDetail = urgentSalesEvent.event_detail,
eventDetailSlug = urgentSalesEvent.event_detail_slug,
dateTime = urgentSalesEvent.date_time,
image = urgentSalesEvent.image,
name = urgentSalesEvent.name,
hostUrl = urgentSalesEvent.host_url,
startTime = urgentSalesEvent.start_time,
timezone = urgentSalesEvent.timezone;
var link = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__core_utils__["H" /* buildEventUrl */])(eventDetailSlug, alternateDetailUrl);
var rootClasses = __WEBPACK_IMPORTED_MODULE_4_classnames___default()(_defineProperty({}, __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.root, true));
var containerClasses = __WEBPACK_IMPORTED_MODULE_4_classnames___default()(_defineProperty({
container: true
}, __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.collapsed, this.state.collapsed));
var locationArray = this.venueLocation.split(',');
var venue = locationArray.shift();
var city = locationArray.shift();
var stateCode = locationArray.shift();
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
'div',
{
className: rootClasses,
ref: function ref(el) {
_this2.root = el;
},
'data-selector': 'urgent-sales__container'
},
_jsx('div', {
className: containerClasses
}, void 0, _jsx('h5', {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.title
}, void 0, this.props.headline), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.eventContainer
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.eventCard
}, void 0, link && __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
__WEBPACK_IMPORTED_MODULE_9__elements__["a" /* Link */],
_extends({}, link, { className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.eventImage }),
_jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["j" /* Cover */], {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.cover
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["b" /* Picture */], {
src: image
}))
), !link && _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["j" /* Cover */], {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.eventImage
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["b" /* Picture */], {
src: image
})), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.eventImgNameContainer
}, void 0, link && __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
__WEBPACK_IMPORTED_MODULE_9__elements__["a" /* Link */],
_extends({}, link, { className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.eventImageMobile }),
_jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["j" /* Cover */], {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.cover
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["b" /* Picture */], {
src: image
}))
), !link && _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["j" /* Cover */], {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.eventImageMobile
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["b" /* Picture */], {
src: image
})), link && __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
__WEBPACK_IMPORTED_MODULE_9__elements__["a" /* Link */],
_extends({}, link, {
theme: this.state.collapsed ? 'headline-inverted' : 'headline'
}),
_jsx('h5', {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.eventName
}, void 0, this.state.collapsed ? this.state.collapsedEventTitle : name)
), !link && _jsx('h5', {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.eventName
}, void 0, this.state.collapsed ? this.state.collapsedEventTitle : name), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.eventInfoContainer
}, void 0, _jsx('p', {
className: 'small'
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["N" /* ShowDateTime */], {
eventDetail: eventDetail,
src: dateTime,
startTime: startTime,
timezone: timezone
})), _jsx('p', {
className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(__WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.eventLocation, 'small')
}, void 0, _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.bold
}, void 0, venue.concat(',')), city + ', ' + stateCode)))), _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["O" /* BuyTicket */], {
eventData: eventDetail,
url: hostUrl,
params: { name: name },
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.cta,
analyticsAction: {
eventName: name,
eventDate: __WEBPACK_IMPORTED_MODULE_7_moment_timezone___default()(dateTime).tz(timezone).format('dddd, MMM DD / h:mm a'),
eventVenue: venue,
eventLocation: (city + ', ' + stateCode).trim()
}
}, void 0, cta && cta.label)), _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["d" /* Button */], {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.hideButton,
theme: 'plain',
onClick: this.hideButtonHandler
}, void 0, this.state.collapsed ? 'More Info' : 'Hide', _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["k" /* Icon */], {
classes: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.caret,
icon: 'msg-caret-down',
theme: 'white',
viewboxWidth: 12,
viewboxHeight: 8,
size: 20
}))),
_jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a.backgroundImageContainer
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_9__elements__["n" /* BlurredImage */], {
img: image,
blur: 50
}))
);
}
}]);
return UrgentSales;
}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
UrgentSales.defaultProps = {
headline: '',
urgent_sales_event: {},
lastBreakPoint: null
};
var mapStateToProps = function mapStateToProps(state) {
return {
lastBreakPoint: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13__store_ui_selectors__["g" /* getLastBreakPoint */])(state)
};
};
var mapDispatchToProps = function mapDispatchToProps(dispatch) {
return {
addExternalSpace: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_redux__["bindActionCreators"])(__WEBPACK_IMPORTED_MODULE_12__store_ui_actions__["m" /* addExternalSpace */], dispatch),
removeExternalSpace: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_redux__["bindActionCreators"])(__WEBPACK_IMPORTED_MODULE_12__store_ui_actions__["n" /* removeExternalSpace */], dispatch)
};
};
var UrgentSalesRedux = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_react_redux__["connect"])(mapStateToProps, mapDispatchToProps)(UrgentSales);
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_8_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_10__UrgentSales_css___default.a)(UrgentSalesRedux));
/***/ }),
/* 1462 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export CalendarVenueTourCard */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VenueTourCard__ = __webpack_require__(270);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__CalendarVenueTourCard_css__ = __webpack_require__(2582);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__CalendarVenueTourCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__CalendarVenueTourCard_css__);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
/**
* The VenueTourCard component styled to fit in the Calendar
*/
var CalendarVenueTourCard = function CalendarVenueTourCard(props) {
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__VenueTourCard__["a" /* default */], _extends({}, props, { styleOverrides: __WEBPACK_IMPORTED_MODULE_3__CalendarVenueTourCard_css___default.a }));
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_1_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_3__CalendarVenueTourCard_css___default.a)(CalendarVenueTourCard));
/***/ }),
/* 1463 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export CarouselVenueTourCard */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VenueTourCard__ = __webpack_require__(270);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__CarouselVenueTourCard_css__ = __webpack_require__(2583);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__CarouselVenueTourCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__CarouselVenueTourCard_css__);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
/**
* The CarouselVenueTourCard component is styled to fit in Carousel.js
*/
var CarouselVenueTourCard = function CarouselVenueTourCard(props) {
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__VenueTourCard__["a" /* default */], _extends({}, props, { isCarouselCard: true, styleOverrides: __WEBPACK_IMPORTED_MODULE_3__CarouselVenueTourCard_css___default.a }));
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_1_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_3__CarouselVenueTourCard_css___default.a)(CarouselVenueTourCard));
/***/ }),
/* 1464 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export VenueToursModule */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__store_ui_selectors__ = __webpack_require__(19);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__containers_VenueTourCard_CalendarVenueTourCard_CalendarVenueTourCard__ = __webpack_require__(1462);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__containers_VenueTourCarousel_VenueTourCarousel__ = __webpack_require__(452);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var VenueToursModule = function VenueToursModule(_ref) {
var venueTours = _ref.venueTours,
lastBreakPoint = _ref.lastBreakPoint,
index = _ref.index;
if (!Array.isArray(venueTours) || venueTours.length <= 0) return null;
var shouldCarouselRender = /xsmall/.test(lastBreakPoint) || venueTours.length > 2;
return shouldCarouselRender ? _jsx(__WEBPACK_IMPORTED_MODULE_5__containers_VenueTourCarousel_VenueTourCarousel__["a" /* default */], {
disablePagination: true,
dots: true,
arrows: false,
cards: venueTours,
index: index
}) : _jsx('div', {
index: index
}, void 0, venueTours.map(function (tour, i) {
var buy_tickets = tour.buy_tickets,
ee_id = tour.ee_id,
eyebrow = tour.eyebrow,
headline = tour.headline,
image = tour.image,
location = tour.location,
see_details = tour.see_details,
time = tour.time,
venue = tour.venue;
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__containers_VenueTourCard_CalendarVenueTourCard_CalendarVenueTourCard__["a" /* default */], _extends({
buy_tickets: buy_tickets,
ee_id: ee_id,
eyebrow: eyebrow,
headline: headline,
logo: image,
location: location,
date: time,
venue: venue,
cta: see_details
}, {
index: i,
key: i
}));
}));
};
var mapStateToProps = function mapStateToProps(state) {
return {
lastBreakPoint: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__store_ui_selectors__["g" /* getLastBreakPoint */])(state)
};
};
VenueToursModule.defaultProps = {
lastBreakPoint: ''
};
/* harmony default export */ __webpack_exports__["a"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_react_redux__["connect"])(mapStateToProps)(VenueToursModule));
/***/ }),
/* 1465 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__store_page_data_selectors__ = __webpack_require__(16);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__core_analyticsUtils__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Venues_css__ = __webpack_require__(2586);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Venues_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__Venues_css__);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var formatAnalyticsText = __WEBPACK_IMPORTED_MODULE_8__core_analyticsUtils__["c" /* default */].formatAnalyticsText;
var MODULE_ACF_ID = 'venue_grid';
var ANALYTICS_DATA = {
event: 'click_content',
link_module: 'visual-link-grid',
link_location: 'body',
link_type: 'internal'
};
var Venues = function Venues(_ref) {
var className = _ref.className,
data = _ref.data;
if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__core_utils__["D" /* validateModules */])(data)) {
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__core_utils__["g" /* logError */])('Bad content data for module ' + MODULE_ACF_ID);
return null;
}
var headline = data.headline,
venues = data.venues;
if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__core_utils__["e" /* isArrayWithLength */])(venues)) return null;
return _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["A" /* Wrapper */], {
color: 'porcelain'
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()(className, 'container'),
'data-selector': 'venues__container'
}, void 0, _jsx('h2', {}, void 0, headline), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_9__Venues_css___default.a.content
}, void 0, venues.map(function (venue, index) {
return venue.url ? _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["a" /* Link */], {
analyticsData: _extends({}, ANALYTICS_DATA, {
click_tracking: formatAnalyticsText(venue.name)
}),
accessibleText: 'Go to ' + venue.name,
className: __WEBPACK_IMPORTED_MODULE_9__Venues_css___default.a.item,
cta: venue.url
}, index, __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__elements__["D" /* HorizontalCard */], venue)) : _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_9__Venues_css___default.a.item
}, index, __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__elements__["D" /* HorizontalCard */], venue));
}))));
};
Venues.defaultProps = {
className: ''
};
var mapStateToProps = function mapStateToProps(state) {
return {
data: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__store_page_data_selectors__["h" /* getModule */])(state, MODULE_ACF_ID)
};
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_9__Venues_css___default.a)(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_react_redux__["connect"])(mapStateToProps)(Venues)));
/***/ }),
/* 1466 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export VideoUniversal */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_sanitize_html_react__ = __webpack_require__(141);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_sanitize_html_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_sanitize_html_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__VideoUniversal_css__ = __webpack_require__(2587);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__VideoUniversal_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__VideoUniversal_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
/**
* Video component for UniversalTemplate
*/
var VideoUniversal = function VideoUniversal(props) {
var headline = props.headline,
video = props.video,
disclaimer = props.disclaimer,
msg_jumplink = props.msg_jumplink;
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()('container', 'small'),
'data-selector': 'video-universal__container'
}, void 0, msg_jumplink && _jsx('div', {
className: 'msg-jumplink',
id: msg_jumplink
}), headline && _jsx('h2', {}, void 0, headline), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_7__VideoUniversal_css___default.a.videoWrapper
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["o" /* Video */], {
className: __WEBPACK_IMPORTED_MODULE_7__VideoUniversal_css___default.a.video,
data: video.video_data
})), disclaimer && _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_7__VideoUniversal_css___default.a.disclaimer,
dangerouslySetInnerHTML: { __html: __WEBPACK_IMPORTED_MODULE_3_sanitize_html_react___default()(disclaimer) }
}));
};
VideoUniversal.defaultProps = {
headline: false,
disclaimer: false,
msg_jumplink: false,
separator: false
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_7__VideoUniversal_css___default.a)(VideoUniversal));
/***/ }),
/* 1467 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export VisualLinkGrid */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_debounce__ = __webpack_require__(38);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_debounce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_debounce__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__VisualLinkGrid_css__ = __webpack_require__(2588);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__VisualLinkGrid_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__VisualLinkGrid_css__);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
/**
* Visual Link Grid component for UniversalTemplate
*/
var VisualLinkGrid = function (_React$Component) {
_inherits(VisualLinkGrid, _React$Component);
function VisualLinkGrid(props) {
_classCallCheck(this, VisualLinkGrid);
var _this = _possibleConstructorReturn(this, (VisualLinkGrid.__proto__ || Object.getPrototypeOf(VisualLinkGrid)).call(this, props));
_this.resizeHandler = function () {
if (_this.section.current) {
_this.setState({
offset: _this.section.current.offsetTop - _this.navigation_height // navigation height
});
}
};
_this.state = {
offset: 0
};
_this.navigation_height = 55;
_this.resizeHandler = __WEBPACK_IMPORTED_MODULE_2_debounce___default()(_this.resizeHandler, 25);
_this.section = __WEBPACK_IMPORTED_MODULE_1_react___default.a.createRef();
return _this;
}
_createClass(VisualLinkGrid, [{
key: 'componentDidMount',
value: function componentDidMount() {
if (this.section.current) {
this.setState({
// eslint-disable-line react/no-did-mount-set-state
offset: this.section.current.offsetTop - this.navigation_height // navigation height
});
}
window.addEventListener('resize', this.resizeHandler);
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
window.removeEventListener('resize', this.resizeHandler);
}
}, {
key: 'render',
value: function render() {
var _props = this.props,
msg_jumplink = _props.msg_jumplink,
cards = _props.cards,
cta = _props.cta,
headline = _props.headline,
eyebrow = _props.eyebrow;
var offset = this.state.offset;
return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
'div',
{ ref: this.section, 'data-selector': 'visual-link-grid__conatiner' },
_jsx('div', {
className: 'container'
}, void 0, msg_jumplink && _jsx('div', {
className: 'msg-jumplink',
id: msg_jumplink
}), _jsx('header', {}, void 0, _jsx('h4', {
className: 'eyebrow'
}, void 0, eyebrow), _jsx('h2', {}, void 0, headline)), _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["C" /* CollapsibleList */], {
cta: cta,
anchorOffset: offset,
theme: 'white',
dataAnalytics: 'ut-visual-grid-cta'
}, void 0, cards.map(function (card, cardIndex) {
var hasLink = __WEBPACK_IMPORTED_MODULE_3_idx___default()(card, function (_) {
return _.cta.label;
});
return hasLink ? _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["a" /* Link */], {
className: __WEBPACK_IMPORTED_MODULE_7__VisualLinkGrid_css___default.a.card,
cta: card.cta,
dataAnalytics: 'ut-visual-grid-card'
}, cardIndex, __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__elements__["D" /* HorizontalCard */], card)) : __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__elements__["D" /* HorizontalCard */], _extends({ key: cardIndex }, card));
})))
);
}
}]);
return VisualLinkGrid;
}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);
VisualLinkGrid.defaultProps = {
msg_jumplink: false
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_7__VisualLinkGrid_css___default.a)(VisualLinkGrid));
/***/ }),
/* 1468 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export Accordion */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Accordion_css__ = __webpack_require__(2590);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Accordion_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__Accordion_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
/**
* Generic accordion UI component
*/
var Accordion = function (_React$Component) {
_inherits(Accordion, _React$Component);
function Accordion(props) {
_classCallCheck(this, Accordion);
var _this = _possibleConstructorReturn(this, (Accordion.__proto__ || Object.getPrototypeOf(Accordion)).call(this, props));
_this.toggleHandler = function () {
_this.setState({
isOpen: _this.props.forceOpen || !_this.state.isOpen
});
};
_this.state = {
isOpen: props.forceOpen || props.isOpen
};
return _this;
}
/**
* Toggles the accordion content
*/
_createClass(Accordion, [{
key: 'render',
value: function render() {
var _props = this.props,
analyticsData = _props.analyticsData,
label = _props.label,
children = _props.children,
className = _props.className,
buttonClassName = _props.buttonClassName,
iconClassName = _props.iconClassName,
forceOpen = _props.forceOpen;
var isOpen = this.state.isOpen;
var contentClasses = __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_5__Accordion_css___default.a.contentWrapper, _defineProperty({}, __WEBPACK_IMPORTED_MODULE_5__Accordion_css___default.a.contentVisible, isOpen));
var buttonClasses = __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_5__Accordion_css___default.a.visibilityTrigger, buttonClassName, _defineProperty({}, __WEBPACK_IMPORTED_MODULE_5__Accordion_css___default.a.buttonTriggered, isOpen));
var iconClasses = __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_5__Accordion_css___default.a.toggleIcon, iconClassName, _defineProperty({}, __WEBPACK_IMPORTED_MODULE_5__Accordion_css___default.a.forceOpen, forceOpen));
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_5__Accordion_css___default.a.root, className)
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_4__elements__["d" /* Button */], {
className: buttonClasses,
onClick: this.toggleHandler,
theme: 'plain',
singleEventAnalytics: !isOpen && analyticsData
}, void 0, _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_5__Accordion_css___default.a.buttonInner, buttonClassName)
}, void 0, label, _jsx('span', {
className: iconClasses
}))), _jsx('div', {
className: contentClasses
}, void 0, children));
}
}]);
return Accordion;
}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
Accordion.defaultProps = {
analyticsData: {},
className: '',
buttonClassName: '',
iconClassName: '',
isOpen: false,
forceOpen: false
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_5__Accordion_css___default.a)(Accordion));
/***/ }),
/* 1469 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export AccordionListContainer */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__core_analyticsUtils__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css__ = __webpack_require__(2591);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var formatAnalyticsText = __WEBPACK_IMPORTED_MODULE_7__core_analyticsUtils__["c" /* default */].formatAnalyticsText;
var COMMON_ANALYTICS = {
event: 'click_content',
link_location: 'body',
link_type: 'internal',
click_tracking: 'expand-accordion'
};
var COLLAPSE_TEXT = 'Collapse';
var EXPAND_TEXT = 'Read More';
var AccordionListContainer = function AccordionListContainer(_ref) {
var _cx;
var icon = _ref.icon,
iconAltText = _ref.icon_alt_text,
title = _ref.title,
description = _ref.description,
items = _ref.accordion_items;
if (!__WEBPACK_IMPORTED_MODULE_6__core_utils__["c" /* isBrowser */]) return null; /* Prevents Loadable Components throwing invalid hook call on server */
var _useState = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(false),
_useState2 = _slicedToArray(_useState, 2),
isOpen = _useState2[0],
setIsOpen = _useState2[1];
var toggleItems = function toggleItems() {
return setIsOpen(!isOpen);
};
var analyticsData = _extends({}, COMMON_ANALYTICS, {
link_module: formatAnalyticsText(title)
});
var iconAlt = iconAltText || __WEBPACK_IMPORTED_MODULE_3_idx___default()(icon, function (_) {
return _.alt;
});
var toggleText = isOpen ? COLLAPSE_TEXT : EXPAND_TEXT;
var hasItems = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__core_utils__["e" /* isArrayWithLength */])(items);
var itemsJsx = isOpen && hasItems && items.map(function (item, index) {
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__elements__["_20" /* AccordionListItem */], _extends({ key: index }, item));
});
var classes = __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css___default.a.root, (_cx = {}, _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css___default.a.hasItems, hasItems), _defineProperty(_cx, __WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css___default.a.isOpen, isOpen), _cx));
return _jsx('div', {
className: classes
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css___default.a.wrapper
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_5__elements__["m" /* Contain */], {}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_5__elements__["b" /* Picture */], {
alt: iconAlt,
className: __WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css___default.a.image,
src: icon
})), _jsx('h3', {
className: __WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css___default.a.title
}, void 0, title), _jsx(__WEBPACK_IMPORTED_MODULE_5__elements__["d" /* Button */], {
className: __WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css___default.a.button,
onClick: toggleItems,
theme: 'plain',
singleEventAnalytics: !isOpen && analyticsData
}, void 0, _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css___default.a.toggleText
}, void 0, toggleText), _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css___default.a.toggleIcon
}))), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css___default.a.description,
dangerouslySetInnerHTML: { __html: description }
}), itemsJsx);
};
AccordionListContainer.defaultProps = {
icon: null,
icon_alt_text: null,
accordion_items: []
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_8__AccordionListContainer_css___default.a)(AccordionListContainer));
/***/ }),
/* 1470 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export AccordionListItem */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__AccordionListItem_css__ = __webpack_require__(2592);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__AccordionListItem_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__AccordionListItem_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var AccordionListItem = function AccordionListItem(_ref) {
var title = _ref.title,
description = _ref.description;
return title && description && _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_3__AccordionListItem_css___default.a.root
}, void 0, _jsx('h4', {
className: __WEBPACK_IMPORTED_MODULE_3__AccordionListItem_css___default.a.title
}, void 0, title), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_3__AccordionListItem_css___default.a.description,
dangerouslySetInnerHTML: { __html: description }
}));
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_3__AccordionListItem_css___default.a)(AccordionListItem));
/***/ }),
/* 1471 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export AmpHtmlLink */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_helmet__ = __webpack_require__(169);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_helmet___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_helmet__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__store_page_data_selectors__ = __webpack_require__(16);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_path__ = __webpack_require__(142);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_path___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_path__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_config__ = __webpack_require__(45);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var AmpHtmlLink = function AmpHtmlLink(_ref) {
var pageSlug = _ref.pageSlug;
var urlPath = __WEBPACK_IMPORTED_MODULE_5_path___default.a.join(__WEBPACK_IMPORTED_MODULE_6__src_config__["q" /* ampPath */], pageSlug);
return _jsx(__WEBPACK_IMPORTED_MODULE_1_react_helmet___default.a, {}, void 0, _jsx('link', {
rel: 'amphtml',
href: '' + __WEBPACK_IMPORTED_MODULE_6__src_config__["r" /* baseURL */] + urlPath
}));
};
var mapStateToProps = function mapStateToProps(state) {
return {
pageSlug: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__store_page_data_selectors__["c" /* getPageSlug */])(state)
};
};
/* harmony default export */ __webpack_exports__["a"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_react_redux__["connect"])(mapStateToProps)(AmpHtmlLink));
/***/ }),
/* 1472 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_downshift__ = __webpack_require__(2434);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Autocomplete_css__ = __webpack_require__(2593);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Autocomplete_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__Autocomplete_css__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__core_constants__ = __webpack_require__(24);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__core_utils__ = __webpack_require__(8);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var Autocomplete = function Autocomplete(_ref) {
var placeholderText = _ref.placeholderText,
refInput = _ref.refInput,
inputId = _ref.inputId,
query = _ref.query,
completeResults = _ref.completeResults,
handleComplete = _ref.handleComplete,
handleChange = _ref.handleChange,
inputClass = _ref.inputClass;
return _jsx(__WEBPACK_IMPORTED_MODULE_3_downshift__["a" /* default */], {
id: 'autocomplete',
onChange: handleComplete,
itemToString: function itemToString(item) {
return item || '';
}
}, void 0, function (_ref2) {
var getInputProps = _ref2.getInputProps,
getItemProps = _ref2.getItemProps,
getMenuProps = _ref2.getMenuProps,
highlightedIndex = _ref2.highlightedIndex;
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_4__Autocomplete_css___default.a.autocomplete
}, void 0, __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('input', _extends({}, getInputProps(), {
className: inputClass,
id: inputId,
name: __WEBPACK_IMPORTED_MODULE_5__core_constants__["b" /* SEARCH_QUERY_PARAM */],
onChange: handleChange,
placeholder: placeholderText,
ref: refInput,
tabIndex: '0',
type: 'text',
value: query,
autoComplete: 'off',
autoFocus: true
})), __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
'ul',
_extends({}, getMenuProps(), { className: __WEBPACK_IMPORTED_MODULE_4__Autocomplete_css___default.a['autocomplete-list'] }),
completeResults.length ? completeResults.map(function (item, index) {
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
'li',
_extends({
key: 'complete-item-' + index
}, getItemProps({
index: index,
item: item,
style: {
backgroundColor: highlightedIndex === index ? '#EFF1F2' : null
}
})),
item
);
}) : null
));
});
};
Autocomplete.defaultProps = {
placeholderText: '',
refInput: __WEBPACK_IMPORTED_MODULE_6__core_utils__["Q" /* noop */],
currQuery: '',
inputId: '',
query: '',
completeResults: [],
handleComplete: __WEBPACK_IMPORTED_MODULE_6__core_utils__["Q" /* noop */],
handleChange: __WEBPACK_IMPORTED_MODULE_6__core_utils__["Q" /* noop */],
inputClass: ''
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_4__Autocomplete_css___default.a)(Autocomplete));
/***/ }),
/* 1473 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export AvailableEventsForSuites */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__store_event_engine_actions__ = __webpack_require__(83);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__store_event_engine_selectors__ = __webpack_require__(84);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__store_page_data_selectors__ = __webpack_require__(16);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__core_analyticsUtils__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__AvailableEventsForSuites_css__ = __webpack_require__(2594);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__AvailableEventsForSuites_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__AvailableEventsForSuites_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var formatAnalyticsText = __WEBPACK_IMPORTED_MODULE_10__core_analyticsUtils__["c" /* default */].formatAnalyticsText;
var EVENTS_RESOURCE = 'events';
var SUITE_TITLE_MAP = {
ELS: 'Reserve an Event Level Suite',
LSL: 'Reserve a Lexus Level Suite',
ISL: 'Reserve an Infosys Suite Level'
};
var AvailableEventsForSuites = function (_Component) {
_inherits(AvailableEventsForSuites, _Component);
function AvailableEventsForSuites() {
_classCallCheck(this, AvailableEventsForSuites);
return _possibleConstructorReturn(this, (AvailableEventsForSuites.__proto__ || Object.getPrototypeOf(AvailableEventsForSuites)).apply(this, arguments));
}
_createClass(AvailableEventsForSuites, [{
key: 'componentDidMount',
value: function componentDidMount() {
var _props = this.props,
fetchEeData = _props.fetchEeData,
suiteLevel = _props.suiteLevel;
var path = EVENTS_RESOURCE;
var params = { suite_level: suiteLevel };
fetchEeData(path, params);
}
}, {
key: 'render',
value: function render() {
var _props2 = this.props,
availableEvents = _props2.availableEvents,
hasSubtitleFeature = _props2.hasSubtitleFeature,
title = _props2.title,
venueId = _props2.venueId,
venueName = _props2.venueName,
wrapperColor = _props2.wrapperColor;
if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__core_utils__["e" /* isArrayWithLength */])(availableEvents)) return null;
var commonAnalyticsData = {
event: 'click_content',
link_type: 'internal',
link_module: 'events-by-suite',
link_location: 'body-events-by-suite',
event_venue_name: formatAnalyticsText(venueName, '-')
};
var renderedEventCards = availableEvents.map(function (event, i) {
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__elements__["_52" /* ScrollbarEventBySuiteCard */], _extends({}, event, {
hasSubtitleFeature: hasSubtitleFeature,
index: i,
key: 'AvailableEventsCard-' + i,
analyticsData: commonAnalyticsData
}));
});
return _jsx(__WEBPACK_IMPORTED_MODULE_5__elements__["A" /* Wrapper */], {
color: wrapperColor
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()('container', __WEBPACK_IMPORTED_MODULE_11__AvailableEventsForSuites_css___default.a.root)
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_11__AvailableEventsForSuites_css___default.a.content
}, void 0, _jsx('h2', {
className: __WEBPACK_IMPORTED_MODULE_11__AvailableEventsForSuites_css___default.a.headline
}, void 0, title), _jsx(__WEBPACK_IMPORTED_MODULE_5__elements__["_7" /* CustomScrollbar */], {
containerClassName: __WEBPACK_IMPORTED_MODULE_11__AvailableEventsForSuites_css___default.a.scrollBarContainer,
cardsClassName: __WEBPACK_IMPORTED_MODULE_11__AvailableEventsForSuites_css___default.a.scrollBarCards
}, void 0, renderedEventCards), _jsx(__WEBPACK_IMPORTED_MODULE_5__elements__["a" /* Link */], {
analyticsData: _extends({}, commonAnalyticsData, {
click_tracking: 'cta:see-all-events'
}),
to: '/calendar?venues=' + venueId + '&category=suites',
className: __WEBPACK_IMPORTED_MODULE_11__AvailableEventsForSuites_css___default.a.button,
theme: 'primary-inverted'
}, void 0, 'See All Events'))));
}
}]);
return AvailableEventsForSuites;
}(__WEBPACK_IMPORTED_MODULE_0_react__["Component"]);
AvailableEventsForSuites.defaultProps = {
availableEvents: [],
hasSubtitleFeature: false,
title: 'Reserve a Suite',
wrapperColor: null
};
var mapStateToProps = function mapStateToProps(state) {
var _getVenue = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__store_page_data_selectors__["d" /* getVenue */])(state),
venueId = _getVenue.event_engine_id,
venueName = _getVenue.name;
var suiteLevel = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__store_page_data_selectors__["v" /* getSuiteLevel */])(state);
var title = SUITE_TITLE_MAP[suiteLevel];
return {
availableEvents: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__store_event_engine_selectors__["c" /* getEeEvents */])(state, EVENTS_RESOURCE),
suiteLevel: suiteLevel,
title: title,
venueId: venueId,
venueName: venueName
};
};
var mapDispatchToProps = {
fetchEeData: __WEBPACK_IMPORTED_MODULE_6__store_event_engine_actions__["a" /* fetchEeData */]
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_11__AvailableEventsForSuites_css___default.a)(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_react_redux__["connect"])(mapStateToProps, mapDispatchToProps)(AvailableEventsForSuites)));
/***/ }),
/* 1474 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export AvailableSuites */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_idx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_idx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_redux__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__store_event_engine_actions__ = __webpack_require__(83);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__store_event_engine_selectors__ = __webpack_require__(84);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__data_eventEngineAPI__ = __webpack_require__(223);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__store_global_data_selectors__ = __webpack_require__(27);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__core_scrollUtils__ = __webpack_require__(46);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__AvailableSuites_css__ = __webpack_require__(2595);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__AvailableSuites_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13__AvailableSuites_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var PILL_LABELS = ['Event Level', 'Lexus Suite', 'Infosys Suite Level'];
var PILL_RESPONSE_MAP = {
'event level': 'ELS',
'lexus suite': 'LSL',
'infosys suite level': 'ISL'
};
var AvailableSuites = function AvailableSuites(_ref) {
var analyticsData = _ref.analyticsData,
fetchEeData = _ref.fetchEeData,
jumpLinkValue = _ref.jumpLinkValue,
selectedEvent = _ref.selectedEvent,
suites = _ref.suites,
suitesApiPath = _ref.suitesApiPath,
title = _ref.title,
wrapperColor = _ref.wrapperColor;
if (!__WEBPACK_IMPORTED_MODULE_11__core_utils__["c" /* isBrowser */]) return null; /* Prevents Loadable Components throwing invalid hook call on server */
var _useState = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useState"])(suites),
_useState2 = _slicedToArray(_useState, 2),
filteredSuites = _useState2[0],
setFilteredSuites = _useState2[1];
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
if (suitesApiPath) fetchEeData(suitesApiPath);
}, [suitesApiPath]);
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__["useEffect"])(function () {
setFilteredSuites(suites);
}, [suites]);
if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__core_utils__["e" /* isArrayWithLength */])(suites)) return null;
var availablePills = PILL_LABELS.filter(function (label) {
var level = PILL_RESPONSE_MAP[label.toLocaleLowerCase()];
var suitesInLevel = suites.filter(function (_ref2) {
var suiteLevel = _ref2.suite_level;
return suiteLevel === level;
});
return suitesInLevel.length > 0;
});
var filterSuites = function filterSuites(levels) {
return suites.filter(function (_ref3) {
var level = _ref3.suite_level;
return levels.includes(level);
});
};
var onPillSelect = function onPillSelect(types) {
var levels = types.map(function (type) {
return PILL_RESPONSE_MAP[type];
});
setFilteredSuites(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__core_utils__["e" /* isArrayWithLength */])(levels) ? filterSuites(levels) : suites);
};
var eventStartDateTime = __WEBPACK_IMPORTED_MODULE_3_idx___default()(selectedEvent, function (_) {
return _.startDateTime;
});
var commonAnalyticsData = _extends({}, analyticsData, {
event_date: eventStartDateTime,
link_location: 'body-suite',
link_module: 'available-suite-card',
link_type: 'e-comm'
});
var pillAnalyticsData = _extends({}, commonAnalyticsData, {
link_location: 'body-suite-filter',
link_module: 'available-suite-card-filter',
click_tracking: 'available-suite-card-filter'
});
var suiteCards = filteredSuites.map(function (suite, index) {
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__elements__["_51" /* ScrollbarSuiteCard */], _extends({}, suite, {
analyticsData: commonAnalyticsData,
index: index,
key: index
}));
});
var shouldShowFilter = availablePills.length > 1;
var TypeFilter = shouldShowFilter ? _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["x" /* PillGroup */], {
analyticsData: pillAnalyticsData,
linkIdPrefix: 'available-suite-card-filter:',
className: __WEBPACK_IMPORTED_MODULE_13__AvailableSuites_css___default.a.pills,
data: availablePills,
max: 0,
min: 0,
onSelect: onPillSelect
}) : null;
var content = _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["A" /* Wrapper */], {
color: wrapperColor
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()('container', __WEBPACK_IMPORTED_MODULE_13__AvailableSuites_css___default.a.root)
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_13__AvailableSuites_css___default.a.content
}, void 0, _jsx('h2', {
className: __WEBPACK_IMPORTED_MODULE_13__AvailableSuites_css___default.a.headline
}, void 0, title), TypeFilter, _jsx(__WEBPACK_IMPORTED_MODULE_6__elements__["_7" /* CustomScrollbar */], {
containerClassName: __WEBPACK_IMPORTED_MODULE_13__AvailableSuites_css___default.a.scrollBarContainer,
cardsClassName: __WEBPACK_IMPORTED_MODULE_13__AvailableSuites_css___default.a.scrollBarCards
}, void 0, suiteCards))));
if (!jumpLinkValue) return content;
return _jsx(__WEBPACK_IMPORTED_MODULE_12__core_scrollUtils__["f" /* default */], {
data: { value: jumpLinkValue }
}, void 0, content);
};
AvailableSuites.defaultProps = {
analyticsData: {},
jumpLinkValue: null,
selectedEvent: null,
selectedEventId: null,
suites: [],
suitesApiPath: null,
template: null,
title: 'Suite Options',
wrapperColor: null
};
var mapStateToProps = function mapStateToProps(state, _ref4) {
var selectedEventId = _ref4.selectedEventId;
var suitesApiPath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__data_eventEngineAPI__["d" /* getSuitesApiPath */])(selectedEventId);
var suites = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__store_event_engine_selectors__["c" /* getEeEvents */])(state, suitesApiPath);
var title = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__store_global_data_selectors__["t" /* getSuitesTitle */])(state);
return {
suites: suites,
suitesApiPath: suitesApiPath,
title: title
};
};
var mapDispatchToProps = {
fetchEeData: __WEBPACK_IMPORTED_MODULE_7__store_event_engine_actions__["a" /* fetchEeData */]
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_5_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_13__AvailableSuites_css___default.a)(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4_react_redux__["connect"])(mapStateToProps, mapDispatchToProps)(AvailableSuites)));
/***/ }),
/* 1475 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export BannerCarouselCard */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__BannerCarouselCard_css__ = __webpack_require__(2596);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__BannerCarouselCard_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__BannerCarouselCard_css__);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var BannerCarouselCard = function BannerCarouselCard(_ref) {
var image = _ref.image,
top_text = _ref.top_text,
bottom_text = _ref.bottom_text;
return _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_4__BannerCarouselCard_css___default.a.root
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_3__elements__["j" /* Cover */], {
className: __WEBPACK_IMPORTED_MODULE_4__BannerCarouselCard_css___default.a.coverWrapper,
parentElement: 'span'
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_3__elements__["b" /* Picture */], {
src: image
})), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_4__BannerCarouselCard_css___default.a.content
}, void 0, _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_4__BannerCarouselCard_css___default.a['top-text']
}, void 0, top_text), _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_4__BannerCarouselCard_css___default.a['bottom-text']
}, void 0, bottom_text)));
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_4__BannerCarouselCard_css___default.a)(BannerCarouselCard));
/***/ }),
/* 1476 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export BannerWithLogo */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__elements__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__BannerWithLogo_css__ = __webpack_require__(2597);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__BannerWithLogo_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__BannerWithLogo_css__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__core_analyticsUtils__ = __webpack_require__(15);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var formatAnalyticsText = __WEBPACK_IMPORTED_MODULE_6__core_analyticsUtils__["c" /* default */].formatAnalyticsText;
var BannerWithLogo = function BannerWithLogo(_ref) {
var background_image = _ref.background_image,
tint = _ref.tint,
logo = _ref.logo,
cta = _ref.cta,
children = _ref.children,
ctaTheme = _ref.ctaTheme;
var style = tint ? { backgroundColor: '#' + tint } : {};
return _jsx(__WEBPACK_IMPORTED_MODULE_3__elements__["A" /* Wrapper */], {
color: 'charade'
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__BannerWithLogo_css___default.a.root,
style: style
}, void 0, background_image && _jsx(__WEBPACK_IMPORTED_MODULE_3__elements__["j" /* Cover */], {
className: __WEBPACK_IMPORTED_MODULE_5__BannerWithLogo_css___default.a['background-image-wrapper']
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_3__elements__["b" /* Picture */], {
src: background_image
})), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()(__WEBPACK_IMPORTED_MODULE_5__BannerWithLogo_css___default.a.container, 'container')
}, void 0, _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__BannerWithLogo_css___default.a.content
}, void 0, logo && _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__BannerWithLogo_css___default.a.logoContainer
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_3__elements__["b" /* Picture */], {
src: logo
})), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__BannerWithLogo_css___default.a.childrenContainer
}, void 0, children), cta.label && _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_5__BannerWithLogo_css___default.a.ctaContainer
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_3__elements__["a" /* Link */], {
theme: ctaTheme,
cta: cta,
className: __WEBPACK_IMPORTED_MODULE_5__BannerWithLogo_css___default.a.cta,
analyticsData: {
event: 'click_content',
link_location: 'body-house-ad',
link_module: 'house-ad-unit',
link_type: 'internal',
click_tracking: 'house-ad-unit' + formatAnalyticsText(cta.label)
}
}, void 0, cta.label))))));
};
BannerWithLogo.defaultProps = {
background_image: null,
tint: '',
ctaTheme: 'secondary'
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_5__BannerWithLogo_css___default.a)(BannerWithLogo));
/***/ }),
/* 1477 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4____ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__data_commonProptypes__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Benefit_css__ = __webpack_require__(2598);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Benefit_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__Benefit_css__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__core_analyticsUtils__ = __webpack_require__(15);
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var formatAnalyticsText = __WEBPACK_IMPORTED_MODULE_7__core_analyticsUtils__["c" /* default */].formatAnalyticsText;
var Benefit = function Benefit(props) {
var headline = props.headline,
icon = props.icon,
description = props.description,
theme = props.theme,
bg_color = props.bg_color,
cta = props.cta,
venueName = props.venueName;
return _jsx('li', {
className: __WEBPACK_IMPORTED_MODULE_6__Benefit_css___default.a.benefit + ' benefit'
}, headline, _jsx('span', {
className: __WEBPACK_IMPORTED_MODULE_2_classnames___default()('' + __WEBPACK_IMPORTED_MODULE_6__Benefit_css___default.a.icon, __WEBPACK_IMPORTED_MODULE_6__Benefit_css___default.a['' + (bg_color || theme)])
}, void 0, _jsx(__WEBPACK_IMPORTED_MODULE_4____["k" /* Icon */], {
theme: 'white',
icon: icon,
size: 30
})), _jsx('div', {
className: __WEBPACK_IMPORTED_MODULE_6__Benefit_css___default.a.content
}, void 0, _jsx('h4', {
className: __WEBPACK_IMPORTED_MODULE_6__Benefit_css___default.a.headline
}, void 0, headline), _jsx('p', {
className: __WEBPACK_IMPORTED_MODULE_6__Benefit_css___default.a.description
}, void 0, description), cta && _jsx(__WEBPACK_IMPORTED_MODULE_4____["a" /* Link */], {
className: __WEBPACK_IMPORTED_MODULE_6__Benefit_css___default.a.cta,
cta: cta,
theme: 'link-primary-inverted',
analyticsData: {
event: 'click_content',
link_module: 'group-benefits',
link_location: 'group-benefits-mod',
link_type: 'internal',
click_tracking: formatAnalyticsText(cta.label, '-'),
event_venue_name: formatAnalyticsText(venueName, '-')
}
}, void 0, cta.label, _jsx(__WEBPACK_IMPORTED_MODULE_4____["k" /* Icon */], {
icon: 'arrow-right',
theme: 'light-blue',
size: '33'
}))));
};
Benefit.defaultProps = {
theme: 'cobalt',
venueName: '',
bg_color: null,
cta: null
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_6__Benefit_css___default.a)(Benefit));
/***/ }),
/* 1478 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export BlurredImage */
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_stackblur_canvas__ = __webpack_require__(2917);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_stackblur_canvas___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_stackblur_canvas__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_classnames__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__core_utils__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__BlurredImage_css__ = __webpack_require__(2599);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__BlurredImage_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__BlurredImage_css__);
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var IMAGE_WIDTH = '768';
/**
* BlurredImage Component draws an image onto a canvas element and blurs it. It will also
* apply a black tint above the image.
*/
var BlurredImage = function (_React$Component) {
_inherits(BlurredImage, _React$Component);
function BlurredImage() {
var _ref;
var _temp, _this, _ret;
_classCallCheck(this, BlurredImage);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = BlurredImage.__proto__ || Object.getPrototypeOf(BlurredImage)).call.apply(_ref, [this].concat(args))), _this), _this.setImage = function () {
var img = _this.props.img;
var imgUrl = typeof img === 'string' ? img : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__core_utils__["o" /* isObjectWithData */])(img) && img.url;
if (!imgUrl) return;
var srcUrl = /(^\/|https?:\/\/\w+.msg.(com|local))/.test(imgUrl) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__core_utils__["f" /* composeImageEngineUrl */])(imgUrl, IMAGE_WIDTH) : imgUrl;
_this.image.src = srcUrl;
_this.image.onload = _this.readyToDraw;
}, _this.readyToDraw = function () {
_this.drawBlur();
}, _this.drawImageProp = function (ctx, img, x, y, w, h, offsetX, offsetY) {
// default offset is center
offsetX = typeof offsetX === 'number' ? offsetX : 0.5;
offsetY = typeof offsetY === 'number' ? offsetY : 0.5;
// keep bounds [0.0, 1.0]
if (offsetX < 0) offsetX = 0;
if (offsetY < 0) offsetY = 0;
if (offsetX > 1) offsetX = 1;
if (offsetY > 1) offsetY = 1;
var iw = img.width;
var ih = img.height;
var r = Math.min(w / iw, h / ih);
var nw = iw * r;
var nh = ih * r;
var cx = void 0;
var cy = void 0;
var cw = void 0;
var ch = void 0;
var ar = 1;
// decide which gap to fill
if (nw < w) ar = w / nw;
nw *= ar;
nh *= ar;
// calc source rectangle
cw = iw / (nw / w);
ch = ih / (nh / h);
cx = (iw - cw) * offsetX;
cy = (ih - ch) * offsetY;
// make sure source rectangle is valid
if (cx < 0) cx = 0;
if (cy < 0) cy = 0;
if (cw > iw) cw = iw;
if (ch > ih) ch = ih;
// fill image in dest. rectangle
ctx.drawImage(img, cx, cy, cw, ch, x, y, w, h);
}, _this.drawTint = function (ctx, x, y, w, h, tint) {
ctx.fillStyle = 'rgba(0, 0, 0, ' + tint + ')';
ctx.fillRect(0, 0, w, h);
}, _this.drawBlur = function () {
if (!_this.canvas) return;
var width = _this.canvas.clientWidth;
var height = _this.canvas.clientHeight;
if (!width || !height) return;
_this.canvas.width = width;
_this.canvas.height = height;
_this.drawImageProp(_this.canvasContext, _this.image, 0, 0, width, height);
if (_this.props.tint) {
_this.drawTint(_this.canvasContext, 0, 0, width, height, _this.props.tint);
}
__WEBPACK_IMPORTED_MODULE_2_stackblur_canvas___default.a.canvasRGBA(_this.canvas, 0, 0, width, height, _this.props.blur);
}, _temp), _possibleConstructorReturn(_this, _ret);
}
_createClass(BlurredImage, [{
key: 'componentDidMount',
value: function componentDidMount() {
if (!this.canvas) return;
this.canvasContext = this.canvas.getContext('2d');
window.addEventListener('resize', this.setImage);
this.image = new Image();
this.image.crossOrigin = 'anonymous';
this.setImage();
}
}, {
key: 'render',
value: function render() {
var _this2 = this;
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('canvas', {
className: __WEBPACK_IMPORTED_MODULE_3_classnames___default()(__WEBPACK_IMPORTED_MODULE_6__BlurredImage_css___default.a.blurImage, this.props.className),
ref: function ref(c) {
_this2.canvas = c;
}
});
}
}]);
return BlurredImage;
}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
BlurredImage.defaultProps = {
className: '',
tint: 0.5,
blur: 0
};
/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_4_isomorphic_style_loader_withStyles___default()(__WEBPACK_IMPORTED_MODULE_6__BlurredImage_css___default.a)(BlurredImage));
/***/ }),
/* 1479 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames_bind__ = __webpack_require__(303);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_classnames_bind___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_classnames_bind__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_isomorphic_style_loader_withStyles__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__BrightcovePlayer_css__ = __webpack_require__(2600);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__BrightcovePlayer_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__BrightcovePlayer_css__);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();
var cx = __WEBPACK_IMPORTED_MODULE_1_classnames_bind___default.a.bind(__WEBPACK_IMPORTED_MODULE_4__BrightcovePlayer_css___default.a);
/**
* The BrightcovePlayer component is a wrapper for a `